Dela via


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:

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.

Se även