Gewusst wie: Deklarieren von Fehlern in Dienstverträgen
In verwaltetem Code werden Ausnahmen bei Auftreten von Fehlerbedingungen ausgelöst. Im Gegensatz dazu werden in Windows Communication Foundation (WCF)-Anwendungen mittels Dienstverträgen die an Clients zurückzugebenden Fehlerinformationen angegeben. Zu diesem Zweck werden SOAP-Fehler in den Dienstverträgen deklariert. Eine Übersicht über die Beziehung zwischen Ausnahmen und Fehlern finden Sie unter Angeben und Behandeln von Fehlern in Verträgen und Diensten.
Erstellen eines Dienstvertrags zum Angeben eines SOAP-Fehlers
Erstellen Sie einen Dienstvertrag, der mindestens einen Vorgang enthält. Ein Beispiel finden Sie unter Gewusst wie: Definieren eines Windows Communication Foundation-Dienstvertrags.
Wählen Sie einen Vorgang aus, der sich zum Angeben einer Fehlerbedingung eignet, aufgrund derer die Clients eine entsprechende Benachrichtigung erhalten. Eine Entscheidungshilfe für die Auswahl von Fehlerbedingungen, die das Zurückgeben eines SOAP-Fehlers an Clients rechtfertigen, finden Sie unter Angeben und Behandeln von Fehlern in Verträgen und Diensten.
Wenden Sie ein System.ServiceModel.FaultContractAttribute auf den ausgewählten Vorgang an, und geben Sie einen serialisierbaren Fehlertyp an den Konstruktor weiter. Weitere Informationen zum Erstellen und Verwenden serialisierbarer Typen finden Sie unter Angeben von Datenübertragung in Dienstverträgen. Im folgenden Beispiel wird gezeigt, wie angegeben werden kann, dass der
SampleMethod
-Vorgang zu einemGreetingFault
führt.Wiederholen Sie die Schritte 2 und 3 für alle Vorgänge des Vertrags, durch die Fehlerbedingungen an Clients weitergegeben werden.
Implementieren eines Vorgangs für das Zurückgeben eines angegebenen SOAP-Fehlers
Nachdem für einen Vorgang angegeben wurde, dass ein bestimmter SOAP-Fehler zurückgegeben werden kann, um eine Fehlerbedingung an eine aufrufende Anwendung weiterzugeben (wie beispielsweise in der vorangehenden Prozedur beschrieben), besteht der nächste Schritt in der Implementierung dieser Angabe.
Auslösen des angegebenen SOAP-Fehlers im Vorgang
- Tritt in einem Vorgang eine durch FaultContractAttribute angegebene Fehlerbedingung auf, lösen Sie eine neue System.ServiceModel.FaultException aus. Der angegebene SOAP-Fehler fungiert hierbei als Typparameter. Im folgenden Beispiel wird gezeigt, wie der
GreetingFault
in der im vorherigen Abschnitt gezeigtenSampleMethod
sowie im folgenden Codeabschnitt ausgelöst werden kann.
Beispiel
Das folgende Codebeispiel zeigt die Implementierung eines Einzelvorgangs, durch den ein GreetingFault
für den SampleMethod
-Vorgang angegeben wird.
Siehe auch
Referenz
System.ServiceModel.FaultContractAttribute
System.ServiceModel.FaultException