Teilen über


WCF Web HTTP-Fehlerbehandlung

Mit der Web-HTTP-Fehlerbehandlung von Windows Communication Foundation (WCF) können Sie Fehler von WCF-Web-HTTP-Diensten zurückgeben, die einen HTTP-Statuscode angeben und Fehlerdetails mit demselben Format wie der Vorgang (z. B. XML oder JSON) zurückgeben.

WCF Web HTTP-Fehlerbehandlung

Die WebFaultException Klasse definiert einen Konstruktor, mit dem Sie einen HTTP-Statuscode angeben können. Dieser Statuscode wird dann an den Client zurückgegeben. Mit einer generischen Version der WebFaultException Klasse können Sie einen benutzerdefinierten Typ zurückgeben, WebFaultException<T> der Informationen zu dem aufgetretenen Fehler enthält. Dieses benutzerdefinierte Objekt wird mithilfe des vom Vorgang angegebenen Formats serialisiert und an den Client zurückgegeben. Das folgende Beispiel zeigt, wie ein HTTP-Statuscode zurückgegeben wird.

public string Operation1()
{
    // Operation logic  
   // ...
   throw new WebFaultException(HttpStatusCode.Forbidden);
}  

Das folgende Beispiel zeigt, wie Ein HTTP-Statuscode und zusätzliche Informationen in einem benutzerdefinierten Typ zurückgegeben werden. MyErrorDetail ist ein benutzerdefinierter Typ, der zusätzliche Informationen zu dem aufgetretenen Fehler enthält.

public string Operation2()
{
   // Operation logic  
   // ...
   MyErrorDetail detail = new MyErrorDetail()
   {  
      Message = "Error Message",  
      ErrorCode = 123,  
   }  
   throw new WebFaultException<MyErrorDetail>(detail, HttpStatusCode.Forbidden);  
}  

Der vorangehende Code gibt eine HTTP-Antwort mit dem Verbotenen Statuscode und einem Textkörper zurück, der eine Instanz des MyErrorDetails Objekts enthält. Das Format des MyErrorDetails Objekts wird durch Folgendes bestimmt:

Weitere Informationen dazu, wie sich diese Werte auf die Formatierung des Vorgangs auswirken, finden Sie unter WCF Web HTTP-Formatierung.

WebFaultException ist ein FaultException und kann daher als Fehler ausnahmeprogrammierungsmodell für Dienste verwendet werden, die SOAP-Endpunkte sowie Web-HTTP-Endpunkte verfügbar machen.

Siehe auch