Ich habe einen Dienst, der Ausnahmen auslösen kann. Ich möchte die Ausnahmen beim Client abfangen können. Die wichtigsten Ausnahmen, an denen ich interessiert bin, sind DbUpdateException
und InvalidOperationException
. Für den Rest der Ausnahmen reicht es zu wissen, dass eine Ausnahme Würfe war.
Wie kann ich Ausnahmen im Client erhalten?
Wenn Ihr WCF-Dienst eine Ausnahme auslöst, wird er standardmäßig als FaultException
an den Client gesendet. Sie können Ihren Dienst so konfigurieren, dass Fehlerdetails in Fehler eingeschlossen werden:
Aber Sie möchten das wahrscheinlich nicht tun , es ist nie eine gute Idee, interne Implementierungsdetails für Clients verfügbar zu machen.
Wenn Sie zwischen verschiedenen Dienstfehlern unterscheiden möchten, können Sie Ihre eigene Klasse erstellen und diese als Fehler registrieren, der von Ihrem Dienst ausgelöst wird. Sie können dies auf der Ebene des Servicevertrags tun:
%Vor% Die Klasse, die Sie für Ihren Fehlervertrag verwenden, muss nichts implementieren (wie Sie es für eine benutzerdefinierte Exception
tun müssten), sondern wird nur in ein generisches FaultContract
-Objekt eingebunden. Sie können dies dann im Client-Code wie folgt abfangen: