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 プロパティに配置されています。このクライアントによってキャッチされた SoapHeaderException の InnerException プロパティは、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 サービス クライアントの作成