Zpracování chyb HTTP programování webové služby WCF
Zpracování chyb http webového protokolu HTTP služby Windows Communication Foundation (WCF) umožňuje vracet chyby ze služeb WCF Web HTTP, které určují stavový kód HTTP a vrací podrobnosti o chybách pomocí stejného formátu jako operace (například XML nebo JSON).
Zpracování chyb HTTP programování webové služby WCF
Třída WebFaultException definuje konstruktor, který umožňuje zadat stavový kód HTTP. Tento stavový kód se pak vrátí klientovi. Obecná verze WebFaultException třídy WebFaultException<T> umožňuje vrátit uživatelem definovaný typ, který obsahuje informace o chybě, ke které došlo. Tento vlastní objekt je serializován pomocí formátu určeného operací a vrácený klientovi. Následující příklad ukazuje, jak vrátit stavový kód HTTP.
public string Operation1()
{
// Operation logic
// ...
throw new WebFaultException(HttpStatusCode.Forbidden);
}
Následující příklad ukazuje, jak vrátit stavový kód HTTP a další informace v uživatelem definovaném typu. MyErrorDetail
je uživatelem definovaný typ, který obsahuje další informace o chybě, ke které došlo.
public string Operation2()
{
// Operation logic
// ...
MyErrorDetail detail = new MyErrorDetail()
{
Message = "Error Message",
ErrorCode = 123,
}
throw new WebFaultException<MyErrorDetail>(detail, HttpStatusCode.Forbidden);
}
Předchozí kód vrátí odpověď HTTP se stavovým kódem Zakázáno a tělem, který obsahuje instanci objektu MyErrorDetails
. Formát objektu MyErrorDetails
je určen takto:
Hodnota
ResponseFormat
parametru nebo WebInvokeAttribute atributu WebGetAttribute zadaného v operaci služby.Hodnota .AutomaticFormatSelectionEnabled
Hodnota Format vlastnosti přístupem k objektu OutgoingWebResponseContext.
Další informace o tom, jak tyto hodnoty ovlivňují formátování operace, naleznete v tématu WCF Web HTTP Formatting.
WebFaultExceptionFaultException je a proto se dá použít jako programovací model výjimek selhání pro služby, které zpřístupňují koncové body SOAP i webové koncové body HTTP.