次の方法で共有


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 エンドポイントを公開するサービスのエラー例外プログラミング モデルとして使用できます。

関連項目