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
オブジェクトの形式は、次の値によって決まります。
サービス操作で指定された WebGetAttribute 属性または WebInvokeAttribute 属性の ResponseFormat パラメーターの値。
Format プロパティの値 (OutgoingWebResponseContext にアクセスして取得)。
これらの値が操作の形式にどのように影響するか詳細情報、「WCF Web HTTP 形式」を参照してください。
WebFaultException は FaultException であるため、SOAP エンドポイントと Web HTTP エンドポイントを公開するサービスのエラー例外プログラミング モデルとして使用できます。HTTP では、エラー動作を表すメタデータ ドキュメントが定義されません。したがって、WebFaultException 機能はサーバー側機能であり、WCF クライアント プロキシ プログラミング モデルには適用されません。
参照
概念
WCF Web HTTP 形式
エラーの定義と指定
例外とエラーの処理
エラーの送受信