次の方法で共有


WCF Web HTTP エラー処理

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

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

こちらも参照ください