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 |
---|---|
|
A operação assíncrona ainda está pendente. |
|
A operação foi anulada. |
|
A operação não é permitida devido ao estado atual do objeto. |
|
A conexão com o ponto de extremidade remoto foi encerrada. |
|
Os dados de entrada não estavam no formato esperado ou não tinham o valor esperado. |
|
A operação não foi concluída dentro do tempo alocado. |
|
Uma cota foi excedida. |
|
A verificação de segurança não foi bem-sucedida para os dados recebidos. |
|
Falha na operação de segurança na estrutura dos Serviços Web do Windows. |
|
Ficou sem memória. |
|
Um ou mais argumentos são inválidos. |
|
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.
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 |