Compartilhar via


Função WsSendFaultMessageForError (webservices.h)

Envia uma mensagem de falha com um objeto WS_ERROR .

Sintaxe

HRESULT WsSendFaultMessageForError(
  [in]           WS_CHANNEL             *channel,
  [in]           WS_MESSAGE             *replyMessage,
  [in]           WS_ERROR               *faultError,
  [in]           HRESULT                faultErrorCode,
  [in]           WS_FAULT_DISCLOSURE    faultDisclosure,
  [in]           WS_MESSAGE             *requestMessage,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

Parâmetros

[in] channel

O canal no qual enviar a mensagem.

[in] replyMessage

Um objeto de mensagem a ser usado para enviar a mensagem de resposta.

O objeto de mensagem deve estar em WS_MESSAGE_STATE_EMPTY ou WS_MESSAGE_STATE_INITIALIZED. Se uma mensagem inicializada for fornecida, ela deverá ter sido inicializada usando WS_FAULT_MESSAGE.

[in] faultError

O objeto de erro a ser usado para construir a falha.

[in] faultErrorCode

O código de erro associado à falha. Não pode ser um código de êxito.

Esse código de erro nunca é incluído diretamente na mensagem de falha, mas, em vez disso, é usado como um mecanismo de fallback para criar uma cadeia de caracteres de falha, caso o objeto WS_ERROR não contenha nenhuma cadeia de caracteres de erro.

[in] faultDisclosure

Controla quanto das informações de erro estão incluídas na mensagem de falha.

[in] requestMessage

A mensagem de solicitação. Isso é usado para obter informações de correlação usadas na formulação da mensagem de resposta.

A mensagem pode estar em qualquer estado , mas WS_MESSAGE_STATE_EMPTY.

[in, optional] asyncContext

Informações sobre como invocar a função de forma assíncrona ou NULL se estiver invocando de forma síncrona.

[in, optional] error

Especifica onde informações adicionais de erro devem ser armazenadas se a função falhar.

Valor retornado

Essa função pode retornar um desses valores.

Código de retorno Descrição
WS_S_ASYNC
A operação assíncrona ainda está pendente.
WS_E_OPERATION_ABORTED
A operação foi anulada.
WS_E_INVALID_OPERATION
A operação não é permitida devido ao estado atual do objeto.
WS_E_ENDPOINT_DISCONNECTED
A conexão com o ponto de extremidade remoto foi encerrada.
WS_E_INVALID_FORMAT
Os dados de entrada não estavam no formato esperado ou não tinham o valor esperado.
WS_E_OPERATION_TIMED_OUT
A operação não foi concluída dentro do tempo alocado.
WS_E_QUOTA_EXCEEDED
Uma cota foi excedida.
WS_E_SECURITY_VERIFICATION_FAILURE
A verificação de segurança não foi bem-sucedida para os dados recebidos.
WS_E_SECURITY_SYSTEM_FAILURE
Falha na operação de segurança na estrutura dos Serviços Web do Windows.
E_OUTOFMEMORY
Ficou sem memória.
E_INVALIDARG
Um ou mais argumentos são inválidos.
Outros erros
Essa função pode retornar outros erros não listados acima.

Comentários

O WS_FAULT enviado no corpo da mensagem é construído usando as mesmas regras definidas por WsCreateFaultFromError.

O valor do WS_ACTION_HEADER usado para a mensagem de resposta é calculado da seguinte maneira:

  • Se o WS_CHANNEL_PROPERTY_ADDRESSING_VERSION do canal for WS_ADDRESSING_VERSION_TRANSPORT, nenhuma ação será incluída na mensagem porque a versão de endereçamento não permite um valor de ação para falhas.
  • Se o objeto de erro contiver uma cadeia de caracteres de ação (o comprimento da cadeia de caracteres retornada por WS_FAULT_ERROR_PROPERTY_ACTION for maior que zero), a cadeia de caracteres de ação será usada.
  • Se o objeto de erro não contiver uma ação, um valor de ação padrão será fornecido.
Se o objeto de erro contiver um cabeçalho usado para descrever a falha conforme especificado por WS_FAULT_ERROR_PROPERTY_HEADER, o cabeçalho será adicionado aos cabeçalhos da mensagem de falha.

A mensagem de falha incluirá informações de correlação conforme apropriado para o WS_ADDRESSING_VERSION. Consulte Visão geral da camada de canal para obter mais informações sobre como correlacionar mensagens de resposta de solicitação.

Se enviar uma falha sem um objeto WS_ERROR , use WsSendReplyMessage.

Para adicionar cabeçalhos personalizados à mensagem, inicialize a mensagem WsInitializeMessage com WS_FAULT_MESSAGE e adicione os cabeçalhos usando WsAddCustomHeader antes de chamar essa função.

Requisitos

   
Cliente mínimo com suporte Windows 7 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho webservices.h
Biblioteca WebServices.lib
DLL WebServices.dll