2009-08-27 10 views
5

Ich habe einen WCF-Service. Der Dienst selbst (Klasse, die die ServiceContract erbt) hat einen Konstruktor, der manchmal Ausnahmen auslöst. Ich möchte dem Benutzer eine Nachricht anzeigen, wenn der Dienst fehlschlägt. Sollte ich Fehler wie für eine Service-Methode verwenden?Sollten Konstruktoren für WCF-Dienste Fehler für die Fehlerbehandlung verwenden?

+2

Warum hat Ihr WCF-Dienst einen Konstruktor, der fehlschlagen kann? Und, ganz ehrlich ... warum hat es überhaupt einen Konstrukteur? WCF kann Dienstinstanzen nach Belieben erstellen und zerstören ... Sie fragen nur nach Problemen, indem Sie einen Konstruktor verwenden, insbesondere wenn es Ausnahmen auslösen kann. – jrista

Antwort

2

Ein Fehler ist im Allgemeinen dazu gedacht, Fehlerinformationen über Dienstgrenzen hinweg bereitzustellen, und in den meisten Fällen wird ein Fehler als Antwort auf eine ungültige oder ungültige Anforderungsnachricht gesendet. Angesichts dessen würde ich sagen, dass ein Fehler hier keinen Sinn ergibt.

Ich stimme dem obigen Kommentar zu, dass ein Konstruktor für eine Serviceklasse das Auslösen von Ausnahmen vermeiden sollte. Wenn Ihr Dienst sesshaft ist, sollten Sie ein Design in Erwägung ziehen, bei dem Sie diese Art der Initialisierung als Ergebnis einer bestimmten Dienstoperation ausführen. Dies kann in WCF durch Markieren einer solchen Service Operation mit "IsInitiating = true" im [OperationContract] Attribut erfolgen. An diesem Punkt werden Sie in der Lage sein, einen Fehler zu generieren und hoffen, dass es den beabsichtigten Client erreicht.

Verwandte Themen