次の方法で共有


方法 : サービス コントラクトでのエラーを宣言する

マネージ コードでは、エラー条件が発生すると例外がスローされます。しかし Windows Communication Foundation (WCF) アプリケーションでは、サービス コントラクトで SOAP エラーを宣言することにより、どのエラー情報をクライアントに通知するかを指定するようになっています。例外とエラーの関係の概要については、「コントラクトおよびサービスのエラーの指定と処理」を参照してください。

SOAP エラーを指定するサービス コントラクトを作成する

  1. サービス コントラクトを作成し、操作をいくつか定義します。例については、「方法 : Windows Communication Foundation サービス コントラクトを定義する」を参照してください。

  2. 操作を選択します。これに対して指定したエラー条件が発生したとき、クライアント側に通知することになります。どのようなエラー条件を SOAP エラーとしてクライアントに通知する必要があるかについては、「コントラクトおよびサービスのエラーの指定と処理」を参照してください。

  3. 選択した操作に対して System.ServiceModel.FaultContractAttribute 属性を適用し、シリアル化可能なエラー型をコンストラクタに渡します。シリアル化可能な型の作成方法および使用方法の詳細については、「サービス コントラクトでのデータ転送の指定」を参照してください。SampleMethod 操作で GreetingFault を返せるように指定する例を次に示します。

  4. コントラクト内でクライアントへの通知が必要な操作すべてについて、手順 2. および 3. を繰り返します。

指定した SOAP エラーを返す操作の実装

エラー状態を呼び出し元アプリケーションに通知するために、前の手順で指定したような特定の SOAP エラーを操作中に返せるように指定したので、次に実際に通知処理を実装します。

指定した SOAP エラーを操作中に例外としてスローする

  1. 操作中に FaultContractAttribute で指定したエラー条件が発生したとき、System.ServiceModel.FaultException 例外を生成してスローする、というコードを記述します。SOAP エラーは型パラメータとして、生成する例外に渡します。前の手順で示した SampleMethod 内で GreetingFault 例外をスローするコード例を次に示します。

SampleMethod 操作内で GreetingFault エラーが発生した場合の処理を実装したコード例を次に示します。

関連項目

リファレンス

System.ServiceModel.FaultContractAttribute
System.ServiceModel.FaultException