共用方式為


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_FAULT_ERROR_PROPERTY_ACTION WS_ERROR中的動作值長度大於零) ,則會比較動作字元串來判斷相符專案。 如果有相符專案,則函式會接著嘗試還原串行化詳細數據元素。

錯誤詳細數據描述的元素描述是用來描述錯誤詳細數據中的元素格式。

[in] readOption

專案是否為必要專案,以及如何配置值。 如需詳細資訊 ,請參閱WS_READ_OPTION

[in, optional] heap

要儲存還原串行化值的堆積。

value

此參數的解譯取決於 WS_READ_OPTION

[in] valueSize

此參數的解譯取決於 WS_READ_OPTION

傳回值

此函式可以傳回下列其中一個值。

傳回碼 Description
WS_E_INVALID_FORMAT
輸入數據不是預期的格式,或沒有預期的值。
E_OUTOFMEMORY
記憶體不足。
WS_E_QUOTA_EXCEEDED
超過堆積的大小配額。
E_INVALIDARG
一或多個引數無效。

備註

此 API 會從儲存在 WS_ERROR 物件中WS_FAULT的詳細數據欄位還原串行化值。

此函式支援下列案例,根據提供的WS_FAULT_DETAIL_DESCRIPTIONWS_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
程式庫 WebServices.lib
Dll WebServices.dll