WCF Web HTTP-felhantering
Windows Communication Foundation (WCF) Web HTTP-felhantering gör att du kan returnera fel från WCF Web HTTP-tjänster som anger en HTTP-statuskod och returnerar felinformation med samma format som åtgärden (till exempel XML eller JSON).
WCF Web HTTP-felhantering
Klassen WebFaultException definierar en konstruktor som gör att du kan ange en HTTP-statuskod. Den här statuskoden returneras sedan till klienten. Med en allmän version av WebFaultException klassen WebFaultException<T> kan du returnera en användardefinierad typ som innehåller information om felet som inträffade. Det här anpassade objektet serialiseras med det format som anges av åtgärden och returneras till klienten. I följande exempel visas hur du returnerar en HTTP-statuskod.
public string Operation1()
{
// Operation logic
// ...
throw new WebFaultException(HttpStatusCode.Forbidden);
}
I följande exempel visas hur du returnerar en HTTP-statuskod och extra information i en användardefinierad typ. MyErrorDetail
är en användardefinierad typ som innehåller extra information om felet som inträffade.
public string Operation2()
{
// Operation logic
// ...
MyErrorDetail detail = new MyErrorDetail()
{
Message = "Error Message",
ErrorCode = 123,
}
throw new WebFaultException<MyErrorDetail>(detail, HttpStatusCode.Forbidden);
}
Föregående kod returnerar ett HTTP-svar med den förbjudna statuskoden och en brödtext som innehåller en instans av MyErrorDetails
objektet. Objektets MyErrorDetails
format bestäms av:
Värdet för parametern
ResponseFormat
WebGetAttribute för attributet eller WebInvokeAttribute som angetts för tjänståtgärden.Värdet för AutomaticFormatSelectionEnabled.
Värdet för Format egenskapen genom att OutgoingWebResponseContextkomma åt .
Mer information om hur dessa värden påverkar åtgärdens formatering finns i WCF Web HTTP-formatering.
WebFaultException är en FaultException och kan därför användas som programmeringsmodell för fel undantag för tjänster som exponerar SOAP-slutpunkter samt webb-HTTP-slutpunkter.