WsSendFaultMessageForError 函数 (webservices.h)

在给定 WS_ERROR 对象的情况下发送错误消息。

语法

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

参数

[in] channel

要发送消息的通道。

[in] replyMessage

用于发送答复消息的消息对象。

消息对象应位于 WS_MESSAGE_STATE_EMPTYWS_MESSAGE_STATE_INITIALIZED中。 如果提供了已初始化的消息,则应使用 WS_FAULT_MESSAGE 对其进行初始化。

[in] faultError

用于构造错误的 error 对象。

[in] faultErrorCode

与错误关联的错误代码。 这不能是成功代码。

此错误代码永远不会直接包含在错误消息中,而是在 WS_ERROR 对象不包含任何错误字符串的情况下用作创建错误字符串的回退机制。

[in] faultDisclosure

控制错误消息中包含的错误信息量。

[in] requestMessage

请求消息。 这用于获取用于表述回复消息的相关信息。

消息可以处于任何状态,但 WS_MESSAGE_STATE_EMPTY

[in, optional] asyncContext

有关如何异步调用函数的信息;如果以同步方式调用,则为 NULL

[in, optional] error

指定函数失败时应存储其他错误信息的位置。

返回值

此函数可以返回其中一个值。

返回代码 说明
WS_S_ASYNC
异步操作仍处于挂起状态。
WS_E_OPERATION_ABORTED
操作已中止。
WS_E_INVALID_OPERATION
由于对象的当前状态,不允许该操作。
WS_E_ENDPOINT_DISCONNECTED
与远程终结点的连接已终止。
WS_E_INVALID_FORMAT
输入数据未采用预期格式或没有预期值。
WS_E_OPERATION_TIMED_OUT
操作未在分配的时间内完成。
WS_E_QUOTA_EXCEEDED
超出配额。
WS_E_SECURITY_VERIFICATION_FAILURE
收到的数据的安全验证未成功。
WS_E_SECURITY_SYSTEM_FAILURE
Windows Web Services 框架中的安全操作失败。
E_OUTOFMEMORY
内存不足。
E_INVALIDARG
一个或多个参数无效。
其他错误
此函数可能会返回上面未列出的其他错误。

注解

消息正文中发送的 WS_FAULT 是使用 WsCreateFaultFromError 定义的相同规则构造的。

用于答复消息 的WS_ACTION_HEADER 的值计算如下:

如果 error 对象包含用于描述 WS_FAULT_ERROR_PROPERTY_HEADER 指定的错误的标头,则将标头添加到错误消息的标头中。

错误消息将包含与 WS_ADDRESSING_VERSION相应的关联信息。 有关关联请求回复消息的详细信息,请参阅 通道层概述

如果在发送错误时没有 WS_ERROR 对象,请使用 WsSendReplyMessage

若要向消息添加自定义标头,请使用 WS_FAULT_MESSAGE 初始化消息 WsInitializeMessage,然后在调用此函数之前使用 WsAddCustomHeader 添加标头。

要求

   
最低受支持的客户端 Windows 7 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 webservices.h
Library WebServices.lib
DLL WebServices.dll