Share via


SOAP ヘッダーの処理中に発生したエラーの処理

このトピックの対象は、レガシ テクノロジに特定されています。XML Web サービスと XML Web サービス クライアントは以下を使用して作成してください。 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 プロパティなどの SoapHeaderException の内容は、Message プロパティに配置されています。このクライアントによってキャッチされた SoapHeaderExceptionInnerException プロパティは、null になります。SOAP 仕様で規定されているように、この例外はネットワーク上では SOAP <Fault> XML 要素に含まれて送信され、.NET Framework でこのプログラミング モデルがサポートされています。例外の詳細については、「XML Web サービスでの例外の処理およびスロー」を参照してください。

メモ : .NET Framework バージョン 1.0 には SoapHeaderAttribute.Required プロパティが含まれており、このプロパティが true に設定されている場合、Web サービスは、特定の SOAP ヘッダーを送信することをクライアントに要求できます。ASP.NET は、生成される WSDL ドキュメントで soap:header 要素の wsdl:required 属性を "true" に設定して、SOAP ヘッダーが必要であることを示します。要求された SOAP ヘッダーをクライアントが送信しない場合、WSDL ドキュメントから構築された Web サービスの .NET Framework クライアントは SoapHeaderException を受け取り、その他のクライアントは SOAP エラーを受け取ります。他の SOAP 実装と相互運用するために、この機能は今後のバージョンでは削除されます。

Required プロパティはバージョン 1.1 では使用されなくなり、WSDL ドキュメント内の soap:header 要素の wsdl:required 属性は Web サービス記述言語ツール (Wsdl.exe) では無視されます。SOAP ヘッダーは必須ではなくなる可能性があるため、Web サービスは、SOAP ヘッダーを表すフィールドやプロパティにアクセスする前に、そのフィールドやプロパティが null ではないことを確認する必要があります。

参照

リファレンス

SoapHeaderException
SoapHeader
SoapHeaderAttribute
SoapUnknownHeader

概念

XML Web サービスでの例外の処理およびスロー
XML Web サービス クライアントの作成

その他のリソース

ASP.NET を使用した XML Web サービス