共用方式為


處理正在處理 SOAP 標頭時發生的錯誤

本主題專門說明舊有技術。 應該使用下列建立 XML Web Service 及 XML Web Service 用戶端: Windows Communication Foundation.

當 Web 服務偵測到 SOAP 標頭處理特定的錯誤時,應該擲回 SoapHeaderException。使用這個例外狀況類別可讓 Web 服務正確格式化回應。範例引動過程如下:

throw new SoapHeaderException("invalid user",SoapException.ClientFaultCode); 
Throw New SoapHeaderException("invalid user", SoapException.ClientFaultCode)

如果用戶端是使用 .NET Framework 建立的,它會收到 SoapHeaderException,其中的內容 (包括 InnerException 屬性) 放在 Message 屬性中。用戶端所攔截的 SoapHeaderExceptionInnerException 屬性會是 null。這是 .NET Framework 支援的程式設計模型,因為如 SOAP 規格規定,例外狀況會透過網路在 SOAP <Fault> XML 項目中傳送。如需例外處理的詳細資訊,請參閱在 XML Web Service 中處理和擲回例外狀況

注意:.NET Framework 1.0 版包含 SoapHeaderAttribute.Required 屬性,當屬性設為 true 時,會讓 Web 服務要求用戶端傳送特定 SOAP 標頭。ASP.NET 會藉由將 soap:header 項目上的 wsdl:required 屬性設為 "true",指定產生的 WSDL 文件中需要有 SOAP 標頭。從 WSDL 文件建置的 Web 服務 .NET Framework 用戶端未傳送必要的 SOAP 標頭時,會收到 SoapHeaderException,其他用戶端則會收到 SOAP 錯誤。為了與其他 SOAP 實作交互操作,後來版本中已移除這個功能。

在 1.1 版中,Required 屬性 (Property) 已過時,而且 Web 服務描述語言工具 (Wsdl.exe) 會忽略 WSDL 文件中 soap:header 項目的 wsdl:required 屬性 (Attribute)。因為 SOAP 標頭不再是必要項,存取之前,Web 服務應驗證表示 SOAP 標頭的欄位或屬性不是 null

另請參閱

參考

SoapHeaderException
SoapHeader
SoapHeaderAttribute
SoapUnknownHeader

概念

在 XML Web Service 中處理和擲回例外狀況
建置 XML Web Service 用戶端

其他資源

使用 ASP.NET 的 XML Web Service