WSD 扫描服务操作错误报告
本部分介绍 WSD 扫描服务如何生成和发送操作错误代码。 常见 WSD 扫描服务操作错误代码中介绍了大多数操作可以返回的错误代码。
当 WSD 扫描服务在处理 Xxx请求 操作时遇到错误时,它将返回错误代码而不是 XxxResponse 元素。 扫描服务在 soap:Fault> 元素中<返回错误代码。
必须在 WSD 扫描服务中定义的所有错误消息都必须根据 Web 服务寻址 (WS-Addressing) 规范中所述的规则发送。 具体而言,WSD 扫描服务应将错误消息发送到以下位置:
[故障终结点](如果存在且有效)。
否则为 [回复终结点](如果存在)。
否则为 [源终结点]。
终结点必须在所有错误消息上包括所需的消息信息标头。 使用 WS-Addressing 中定义的 [relationship] 属性将错误消息关联为答复。 以下 [action] 属性指定错误消息:
https://schemas.xmlsoap.org/ws/2004/08/addressing/fault
故障的定义使用以下属性:
Fault 属性 | 定义 |
---|---|
[代码] | 错误代码。 |
[Subcode] | 错误子代码。 |
[原因] | 英语原因元素。 |
[详细信息] | 详细信息元素。 如果此元素不存在,则不会为错误定义任何详细信息元素。 |
如以下代码示例所示,这些属性绑定到 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>