Partilhar via


Relatório de erros da operação do serviço de verificação do WSD

Esta seção descreve como um Serviço de Verificação do WSD gera e envia códigos de erro de operação. Os códigos de erro que a maioria das operações podem retornar são descritos em Códigos de erro comuns de operação do serviço de verificação do WSD.

Quando o Serviço de Verificação do WSD encontra um erro ao processar uma operação de SolicitaçãoXxx, ele retorna um código de erro em vez de um elemento XxxResponse. O Serviço de Verificação retorna códigos de erro no <elemento soap:Fault> .

Todas as mensagens de erro definidas no Serviço de Verificação do WSD devem ser enviadas de acordo com as regras descritas na especificação WS-Addressing (Endereçamento de Serviços Web). Especificamente, o Serviço de Verificação do WSD deve enviar mensagens de falha, em ordem, para os seguintes locais:

  1. O [ponto de extremidade de falha], se ele estiver presente e válido.

  2. Caso contrário, o [ponto de extremidade de resposta], se ele estiver presente.

  3. Caso contrário, o [ponto de extremidade de origem].

Os pontos de extremidade devem incluir cabeçalhos de informações de mensagem necessários em todas as mensagens de falha. As mensagens de falha são correlacionadas como respostas usando a propriedade [relationship], conforme definido em WS-Addressing. A seguinte propriedade [ação] designa mensagens de falha:

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

As definições de falhas usam as seguintes propriedades:

Propriedade Fault Definição
[Código] O código de falha.
[Subcódigo] O subcódigo de falha.
[Motivo] O elemento motivo do idioma inglês.
[Detalhe] O elemento detail. Se esse elemento estiver ausente, nenhum elemento de detalhe será definido para a falha.

Essas propriedades se associam a uma falha SOAP 1.2, como mostra o exemplo de código a seguir.

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

O exemplo de código a seguir mostra uma falha SOAP de exemplo.

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