WCF hat eine Exception an den Client übergeben

8

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?

    
Ryan 22.02.2011, 10:51
quelle

2 Antworten

10

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:

%Vor%

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:

%Vor%     
Graham Clark 22.02.2011, 11:02
quelle
3

Definieren Sie einen FaultContract, damit alle Clients darauf warten und nur die Ausnahmedetails einschließen können, die öffentlich verfügbar gemacht werden sollen.

Lesen Sie dies für weitere Informationen: MSDN Docs

    
Henric 22.02.2011 10:54
quelle

Tags und Links