WCF-Web-HTTP-Fehlerbehandlung

Die Web-HTTP-Fehlerbehandlung von Windows Communication Foundation (WCF) ermöglicht es Ihnen, Fehler von WCF-Web-HTTP-Diensten zurückzugeben, die einen HTTP-Statuscode angeben, sowie Fehlerdetails im gleichen Format wie der Vorgang (z. B. XML oder JSON) zurückzugeben.

WCF-Web-HTTP-Fehlerbehandlung

Die WebFaultException-Klasse definiert einen Konstruktor, der Ihnen das Angeben eines HTTP-Statuscodes ermöglicht. Dieser Statuscode wird dann an den Client zurückgegeben. Dies ist eine generichse Version der WebFaultException-Klasse. Mit WebFaultException können Sie einen benutzerdefinierten Typ zurückgeben, der Informationen zum aufgetretenen Fehler enthält. Dieses benutzerdefinierte Objekt wird in dem Format serialisiert, das vom Vorgang angegeben und an den Client zurückgegeben wird. Im folgenden Beispiel wird gezeigt, wie Sie einen HTTP-Statuscode zurückgeben.

Public string Operation1()
{   // Operation logic
   // ...
   Throw new WebFaultException(HttpStatusCode.Forbidden);
}

Im folgenden Beispiel wird gezeigt, wie Sie einen HTTP-Statuscode und zusätzliche Informationen in einem benutzerdefinierten Typ zurückgeben. MyErrorDetail ist ein benutzerdefinierter Typ, der zusätzliche Informationen zum 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 oben angegebene Code gibt eine HTTP-Antwort mit dem unzulässigen Statuscode und einem Text zurück, in der eine Instanz des MyErrorDetails-Objekts enthalten ist. Zum Bestimmen des Formats des MyErrorDetails-Objekts werden folgende Komponenten herangezogen:

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

WebFaultException ist ein FaultException-Objekt und kann daher als Fehlerausnahme-Programmiermodell für Dienste verwendet werden, die SOAP-Endpunkte sowie Web-HTTP-Endpunkte verfügbar machen. Da HTTP kein Metadatendokument definiert, um Fehlerverhalten auszudrücken, ist die WebFaultException-Funktion eine serverseitige Funktion, die nicht für das WCF-Clientproxy-Programmiermodell gilt.

Siehe auch

Konzepte

WCF-Web-HTTP-Formatierung
Definieren und Angeben von Fehlern
Behandeln von Ausnahmen und Fehlern
Senden und Empfangen von Fehlern

Weitere Ressourcen

WCF-Web-HTTP-Programmiermodell