Windows Communication Foundation (WCF) Web HTTP 錯誤處理可讓您從指定 HTTP 狀態代碼的 WCF Web 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 端點之服務的錯誤例外狀況程式設計模型。