Отчеты об ошибках службы проверки WSD
В этом разделе описывается, как служба проверки WSD создает и отправляет коды ошибок операции. Коды ошибок, которые могут возвращать большинство операций, описаны в разделе Распространенные коды ошибок службы проверки WSD.
Когда служба сканирования WSD обнаруживает ошибку при обработке операции xxxRequest , она возвращает код ошибки вместо элемента XxxResponse . Служба сканирования возвращает коды ошибок в элементе <soap:Fault> .
Все сообщения об ошибках, определенные в службе проверки WSD, должны отправляться в соответствии с правилами, описанными в спецификации адресации веб-служб (WS-Addressing). В частности, служба проверки WSD должна отправлять сообщения об ошибках в следующих расположениях:
[конечная точка сбоя], если она присутствует и действительна.
В противном случае — [конечная точка ответа], если она присутствует.
В противном случае — [исходная конечная точка].
Конечные точки должны содержать обязательные заголовки сведений о сообщениях для всех сообщений об ошибках. Сообщения об ошибках коррелируются как ответы с помощью свойства [relationship], как определено в WS-Addressing. Следующее свойство [action] обозначает сообщения об ошибках:
https://schemas.xmlsoap.org/ws/2004/08/addressing/fault
Определения ошибок используют следующие свойства:
Свойство Fault | Определение |
---|---|
[Код] | Код ошибки. |
[Подкод] | Дополнительный код ошибки. |
[Причина] | Элемент reason на английском языке. |
[Подробности] | Элемент detail. Если этот элемент отсутствует, элемент detail не определяется для ошибки. |
Эти свойства привязываются к ошибке SOAP 1.2, как показано в следующем примере кода.
<S:Envelope>
<S:Header>
<wsa:Action>https://schemas.xmlsoap.org/ws/2004/08/addressing/fault</wsa:Action>
<!-- Headers excluded for clarity -->
</S:Header>
<S:Body>
<S:Fault>
<S:Code>
<S:Value>[Code]</S:Value>
<S:Subcode>
<S:Value>[Subcode]</S:Value>
</S:Subcode>
</S:Code>
<S:Reason>
<S:Text xml:lang="en">[Reason]</S:Text>
</S:Reason>
<S:Detail>[Detail]</S:Detail>
</S:Fault>
</S:Body>
</S:Envelope>
В следующем примере кода показан пример ошибки SOAP.
<soap:Envelope xmlns:soap="https://www.w3.org/2003/05/soapelope"
xmlns:xml="https://www.w3.org/XML/1998/namespace"
xmlns:wsa="https://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns:nprt="https://schemas.microsoft.com/windows/2006/01/wdp/scan">
<soap:Header>
<wsa:Action>https://schemas.xmlsoap.org/ws/2004/08/addressing/fault</wsa:Action>
<!-- Headers excluded for brevity -->
</soap:Header>
<soap:Body>
<soap:Fault>
<soap:Code>
<soap:Value>env:Sender</soap:Value>
<soap:Subcode>
<soap:Value>wscn:OperationFailed</soap:Value>
</soap:Subcode>
</soap:Code>
<soap:Reason>
<soap:Text xml:lang="en">Service cannot perform the requested operation</soap:Text>
</soap:Reason>
</soap:Fault>
</soap:Body>
</soap:Envelope>