Informe de errores de la operación del servicio de examen de WSD
En esta sección se describe cómo un servicio de examen de WSD genera y envía códigos de error de operación. Los códigos de error que la mayoría de las operaciones pueden devolver se describen en Códigos de error comunes de operación del servicio de análisis de WSD.
Cuando el servicio de análisis de WSD encuentra un error al procesar una operación desolicitud Xxx, devuelve un código de error en lugar de un elemento XxxResponse . El servicio Scan devuelve códigos de error en el <elemento soap:Fault> .
Todos los mensajes de error definidos en el servicio de análisis de WSD deben enviarse según las reglas que se describen en la especificación de direccionamiento de servicios web (WS-Addressing). En concreto, el servicio de examen de WSD debe enviar mensajes de error, en orden, a las siguientes ubicaciones:
El [punto de conexión de error], si está presente y es válido.
De lo contrario, el [punto de conexión de respuesta], si está presente.
De lo contrario, el [punto de conexión de origen].
Los puntos de conexión deben incluir encabezados de información de mensaje necesarios en todos los mensajes de error. Los mensajes de error se correlacionan como respuestas mediante la propiedad [relationship] tal como se define en WS-Addressing. La siguiente propiedad [action] designa mensajes de error:
https://schemas.xmlsoap.org/ws/2004/08/addressing/fault
Las definiciones de errores usan las siguientes propiedades:
Propiedad Fault | Definición |
---|---|
[Código] | Código de error. |
[Subcódigo] | Subcódigo del error. |
[Motivo] | Elemento reason del idioma inglés. |
[Detalle] | Elemento de detalle. Si este elemento no está presente, no se define ningún elemento de detalle para el error. |
Estas propiedades se enlazan a un error de SOAP 1.2, como se muestra en el ejemplo de código siguiente.
<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>
En el ejemplo de código siguiente se muestra un error SOAP de ejemplo.
<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>