Función WsSendFaultMessageForError (webservices.h)
Envía un mensaje de error dado un objeto WS_ERROR .
Sintaxis
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
Canal en el que se va a enviar el mensaje.
[in] replyMessage
Objeto de mensaje que se va a usar para enviar el mensaje de respuesta.
El objeto message debe estar en WS_MESSAGE_STATE_EMPTY o WS_MESSAGE_STATE_INITIALIZED. Si se proporciona un mensaje inicializado, debe haberse inicializado mediante WS_FAULT_MESSAGE.
[in] faultError
Objeto de error que se va a usar para construir el error.
[in] faultErrorCode
Código de error asociado al error. Esto no puede ser un código correcto.
Este código de error nunca se incluye directamente en el mensaje de error, sino que se usa como mecanismo de reserva para crear una cadena de error en caso de que el objeto WS_ERROR no contenga ninguna cadena de error.
[in] faultDisclosure
Controla la cantidad de información de error que se incluye en el mensaje de error.
[in] requestMessage
Mensaje de solicitud. Se usa para obtener información de correlación utilizada para formular el mensaje de respuesta.
El mensaje puede estar en cualquier estado, pero WS_MESSAGE_STATE_EMPTY.
[in, optional] asyncContext
Información sobre cómo invocar la función de forma asincrónica o NULL si invoca de forma sincrónica.
[in, optional] error
Especifica dónde se debe almacenar información de error adicional si se produce un error en la función.
Valor devuelto
Esta función puede devolver uno de estos valores.
Código devuelto | Descripción |
---|---|
|
La operación asincrónica sigue pendiente. |
|
Se anuló la operación. |
|
No se permite la operación debido al estado actual del objeto . |
|
Se finalizó la conexión con el punto de conexión remoto. |
|
Los datos de entrada no tenían el formato esperado o no tenían el valor esperado. |
|
La operación no se completó dentro del tiempo asignado. |
|
Se superó una cuota. |
|
La comprobación de seguridad no se realizó correctamente para los datos recibidos. |
|
Error en una operación de seguridad en el marco de servicios web de Windows. |
|
Se quedó sin memoria. |
|
Uno o más argumentos no son válidos. |
|
Esta función puede devolver otros errores no enumerados anteriormente. |
Comentarios
El WS_FAULT que se envía en el cuerpo del mensaje se construye con las mismas reglas definidas por WsCreateFaultFromError.
El valor del WS_ACTION_HEADER usado para el mensaje de respuesta se calcula de la siguiente manera:
- Si el WS_CHANNEL_PROPERTY_ADDRESSING_VERSION del canal está WS_ADDRESSING_VERSION_TRANSPORT, no se incluye ninguna acción en el mensaje porque la versión de direccionamiento no permite un valor de acción para errores.
- Si el objeto de error contiene una cadena de acción (la longitud de la cadena devuelta por WS_FAULT_ERROR_PROPERTY_ACTION es mayor que cero), se usa la cadena de acción.
- Si el objeto de error no contiene una acción, se proporciona un valor de acción predeterminado.
El mensaje de error incluirá información de correlación según corresponda al WS_ADDRESSING_VERSION. Consulte Información general sobre la capa de canal para obtener más información sobre cómo correlacionar los mensajes de respuesta de solicitud.
Si envía un error sin un objeto WS_ERROR , use WsSendReplyMessage.
Para agregar encabezados personalizados al mensaje, inicialice el mensaje WsInitializeMessage con WS_FAULT_MESSAGE y, a continuación, agregue los encabezados mediante WsAddCustomHeader antes de llamar a esta función.
Requisitos
Cliente mínimo compatible | Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | webservices.h |
Library | WebServices.lib |
Archivo DLL | WebServices.dll |