Segnalazione errori del servizio analisi WSD
Questa sezione descrive come viene generato un servizio di analisi WSD e invia codici di errore dell'operazione. I codici di errore che la maggior parte delle operazioni possono restituire sono descritti in Codici di errore comuni dell'operazione di analisi WSD.
Quando il servizio analisi WSD rileva un errore durante l'elaborazione di un'operazione XxxRequest , restituisce un codice di errore anziché un elemento XxxResponse . Il servizio analisi restituisce codici di errore nell'elemento <soap:Fault> .
Tutti i messaggi di errore definiti all'interno del servizio analisi WSD devono essere inviati in base alle regole descritte nella specifica WS-Addressing (WS-Addressing). In particolare, il servizio di analisi WSD deve inviare messaggi di errore, per poter accedere alle posizioni seguenti:
[endpoint di errore], se presente e valido.
In caso contrario, [endpoint di risposta], se presente.
In caso contrario, [endpoint di origine].
Gli endpoint devono includere intestazioni di informazioni sul messaggio necessarie per tutti i messaggi di errore. I messaggi di errore vengono correlati come risposte usando la proprietà [relazione] definita in WS-Addressing. La proprietà [action] seguente designa i messaggi di errore:
https://schemas.xmlsoap.org/ws/2004/08/addressing/fault
Le definizioni degli errori usano le proprietà seguenti:
Proprietà di errore | Definizione |
---|---|
[Codice] | Codice di errore. |
[Sottocodice] | Codice secondario dell'errore. |
[Motivo] | Elemento motivo della lingua inglese. |
[Dettaglio] | Elemento dettaglio. Se questo elemento è assente, non viene definito alcun elemento di dettaglio per l'errore. |
Queste proprietà vengono associate a un errore SOAP 1.2 come illustrato nell'esempio di codice seguente.
<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>
Nell'esempio di codice seguente viene illustrato un esempio di errore 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>