共用方式為


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);
}

前一個程式碼會傳回 HTTP 回應,附上禁止狀態碼與本文,而本文中會包含 MyErrorDetails 物件的執行個體。 MyErrorDetails 物件的格式取決於:

如需詳細資訊這些值如何影響作業格式化的詳細資訊,請參閱 WCF Web HTTP 格式化

WebFaultException 是一個 FaultException,因此可以針對開放 SOAP 端點以及 Web HTTP 端點的服務,用來當做服務的錯誤例外狀況程式設計模型。 由於 HTTP 不會定義中繼資料文件來表示錯誤行為,所以 WebFaultException 功能是伺服器端的功能,並不適用於 WCF 用戶端 Proxy 程式設計模型。

另請參閱

概念

WCF Web HTTP 格式化
定義並指定錯誤
處理例外狀況和錯誤
傳送和接收錯誤

其他資源

WCF Web HTTP 程式設計模型