共用方式為


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

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

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

WebFaultException 是一個 FaultException,因此可以針對公開 SOAP 端點以及 Web HTTP 端點的服務,用來當做服務的錯誤例外狀況程式撰寫模型。

另請參閱