WsGetFaultErrorDetail 函数 (webservices.h)

读取存储在 WS_ERROR 对象中的错误详细信息。

语法

HRESULT WsGetFaultErrorDetail(
  [in]           WS_ERROR                          *error,
  [in]           const WS_FAULT_DETAIL_DESCRIPTION *faultDetailDescription,
  [in]           WS_READ_OPTION                    readOption,
  [in, optional] WS_HEAP                           *heap,
                 void                              *value,
  [in]           ULONG                             valueSize
);

参数

[in] error

包含错误信息的错误对象。

[in] faultDetailDescription

指向错误详细信息元素的说明的指针。

错误详细信息说明的操作值用作与错误操作匹配的筛选器值。 如果两个操作字符串都指定 (错误详细信息说明的操作值不为 NULL,并且WS_ERROR中的操作值WS_FAULT_ERROR_PROPERTY_ACTION长度大于零) ,则比较操作字符串以确定匹配项。 如果存在匹配项,则该函数将尝试反序列化 detail 元素。

故障详细信息说明的元素说明用于描述故障详细信息中元素的格式。

[in] readOption

元素是否是必需的,以及如何分配值。 有关详细信息 ,请参阅WS_READ_OPTION

[in, optional] heap

要存储反序列化值的堆。

value

此参数的解释取决于 WS_READ_OPTION

[in] valueSize

此参数的解释取决于 WS_READ_OPTION

返回值

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

返回代码 说明
WS_E_INVALID_FORMAT
输入数据未采用预期格式或没有预期值。
E_OUTOFMEMORY
内存不足。
WS_E_QUOTA_EXCEEDED
超出了堆的大小配额。
E_INVALIDARG
一个或多个参数无效。

注解

此 API 从存储在 WS_ERROR 对象中的WS_FAULT的详细信息字段中反序列化值。

此函数根据提供的WS_FAULT_DETAIL_DESCRIPTION中WS_ELEMENT_DESCRIPTION的内容支持以下方案:

  • 读取单个元素。 在这种情况下, 应将WS_ELEMENT_DESCRIPTION 的 elementLocalName 和 elementNs 字段设置为要读取的元素的本地名称和命名空间,并且类型和类型说明表示要反序列化的值的类型。

    由于服务中可能会出现具有不同详细信息格式的不同错误,因此可以连续调用此函数来尝试读取每种类型的详细信息。 在这种情况下,可以指定 WS_READ_OPTIONAL_POINTER 值,如果错误详细信息中的元素名称与预期值不匹配,该值将返回 NULL 指针。

  • 以单个值的形式读取多个元素。 在这种情况下,应将 WS_ELEMENT_DESCRIPTION 的 elementLocalName 和 elementNs 字段设置为 NULL,并指定 WS_STRUCT_TYPEWS_STRUCT_DESCRIPTION 。 要反序列化的结构值的每个字段都应对应于要在正文中读取的元素 () 。 readOption 参数必须 WS_READ_REQUIRED_VALUEWS_READ_REQUIRED_POINTER

要求

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