WCF Web HTTP エラー処理

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

WCF Web HTTP エラー処理

WebFaultException クラスは、HTTP 状態コードを指定できるようにするコンストラクターを定義します。 この状態コードは、クライアントに返されます。 WebFaultException クラスのジェネリック バージョンである WebFaultException<T> を使用すると、発生したエラーに関する情報を格納しているユーザー定義型を返すことができます。 このカスタム オブジェクトは、操作で定義された形式を使用してシリアル化され、クライアントに返されます。 次の例は、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 エンドポイントを公開するサービスのエラー例外プログラミング モデルとして使用できます。

関連項目