WCF Web HTTP エラー処理

Windows Communication Foundation (WCF) Web HTTP エラー処理では、WCF Web HTTP サービスからエラーを返すことができます。このサービスは、HTTP 状態コードを指定し、操作と同じ形式 (XML、JSON など) を使用してエラーの詳細を返します。

WCF Web HTTP エラー処理

WebFaultException クラスは、HTTP 状態コードを指定できるようにするコンストラクターを定義します。この状態コードは、クライアントに返されます。WebFaultException クラスのジェネリック バージョンである WebFaultException を使用すると、発生したエラーに関する情報を格納しているユーザー定義型を返すことができます。このカスタム オブジェクトは、操作で定義された形式を使用してシリアル化され、クライアントに返されます。次の例は、HTTP 状態コードを返す方法を示しています。

Public string Operation1()
{   // Operation logic
   // ...
   Throw new WebFaultException(HttpStatusCode.Forbidden);
}

次の例は、HTTP 状態コードおよび追加情報をユーザー定義型で返す方法を示しています。MyErrorDetail は、発生したエラーに関する情報を格納している、ユーザー定義型です。

Public string Operation2()
   // Operation logic
   // ...   MyErrorDetail detail = new MyErrorDetail
   {
      Message = “Error Message”,
      ErrorCode = 123,
   }
   throw new WebFaultException<MyErrorDetail>(detail, HttpStatusCode.Forbidden);
}

このコードは、禁止されている状態コード、および MyErrorDetails オブジェクトのインスタンスを格納している本文と共に、HTTP 応答を返します。MyErrorDetails オブジェクトの形式は、次の値によって決まります。

これらの値が操作の形式にどのように影響するか詳細情報、「WCF Web HTTP 形式」を参照してください。

WebFaultExceptionFaultException であるため、SOAP エンドポイントと Web HTTP エンドポイントを公開するサービスのエラー例外プログラミング モデルとして使用できます。HTTP では、エラー動作を表すメタデータ ドキュメントが定義されません。したがって、WebFaultException 機能はサーバー側機能であり、WCF クライアント プロキシ プログラミング モデルには適用されません。

参照

概念

WCF Web HTTP 形式
エラーの定義と指定
例外とエラーの処理
エラーの送受信

その他のリソース

WCF Web HTTP プログラミング モデル