Partager via


Rapport d’erreurs d’opération du service d’analyse WSD

Cette section décrit comment un service d’analyse WSD génère et envoie des codes d’erreur d’opération. Les codes d’erreur que la plupart des opérations peuvent retourner sont décrits dans Codes d’erreur courants des opérations de service d’analyse WSD.

Lorsque le service d’analyse WSD rencontre une erreur lors du traitement d’une opération XxxRequest , il retourne un code d’erreur au lieu d’un élément XxxResponse . Le service d’analyse retourne les codes d’erreur dans l’élément <soap:Fault> .

Tous les messages d’erreur définis dans le service d’analyse WSD doivent être envoyés conformément aux règles décrites dans la spécification d’adressage des services web (WS-Addressing). Plus précisément, le service d’analyse WSD doit envoyer des messages d’erreur, dans l’ordre, aux emplacements suivants :

  1. [point de terminaison d’erreur], s’il est présent et valide.

  2. Sinon, le [point de terminaison de réponse], s’il est présent.

  3. Sinon, le [point de terminaison source].

Les points de terminaison doivent inclure les en-têtes d’informations de message obligatoires sur tous les messages d’erreur. Les messages d’erreur sont corrélés en tant que réponses à l’aide de la propriété [relation] telle que définie dans WS-Addressing. La propriété [action] suivante désigne les messages d’erreur :

https://schemas.xmlsoap.org/ws/2004/08/addressing/fault

Les définitions des erreurs utilisent les propriétés suivantes :

Propriété Fault Définition
[Code] Code d’erreur.
[Sous-code] Sous-code d'erreur.
[Raison] Élément de raison de la langue anglaise.
[Détail] Élément detail. Si cet élément est absent, aucun élément de détail n’est défini pour l’erreur.

Ces propriétés se lient à une erreur SOAP 1.2, comme le montre l’exemple de code suivant.

<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>

L’exemple de code suivant montre un exemple d’erreur 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>