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
物件的格式取決於:
服務作業所指定
ResponseFormat
或 WebGetAttribute 屬性之 WebInvokeAttribute 參數的值。透過存取 Format 之 OutgoingWebResponseContext 屬性的值。
如需有關這些值如何影響作業格式的詳細資訊,請參閱 WCF Web HTTP 格式設定。
WebFaultException 是一個 FaultException,因此可以針對公開 SOAP 端點以及 Web HTTP 端點的服務,用來當做服務的錯誤例外狀況程式撰寫模型。