2010-07-22 8 views
6

Ich schreibe WCF-Dienst und möchte das Aktivitätsprotokoll behalten: Trace, Warnungen und Fehlermeldungen. Der sehr unkomplizierte Ansatz besteht darin, den gesamten Vertragsservice-Code innerhalb von try/catch-Abschnitten zu verpacken und Fehlernachrichten aus catch-Teil-Vertragsunterbrechungs-Servicevertragsfehlerausnahmen zu schreiben.WCF: serverseitige Fehlerbehandlung. Best Practice

Ich denke, es wäre schön, wenn es einen Codepunkt geben würde, um alle nicht abgefangenen Ausnahmen statt dutzender try/catch Abschnitte zu erfassen. Es wäre auch nützlich, von diesem Punkt aus einen Vertragsmethodenparameter zu schreiben, um detaillierte Fehlerinformationen zu liefern.

Ist es mit WCF möglich?

Was ist die beste Vorgehensweise beim Organisieren der Fehlerbehandlung in WCF-Diensten?

Vielen Dank im Voraus!

Antwort

4

Werfen Sie einen Blick auf IErrorHandler Schnittstelle

Es ist ein Implementierer die Fehlermeldung an den Aufrufer zurückgegeben zu steuern und gegebenenfalls die benutzerdefinierte Fehlerverarbeitung wie Logging

Sie können Ihre Service-Verhalten (siehe IServiceBehavior Schnittstelle ausführen implementieren) und fügen Sie Ihren Handler ChannelDispatcher Fehlerhandler hinzu.

Weitere Informationen finden Sie unter WCF Exception Handling with IErrorHandler.

+0

Dieser Artikel ist nicht mehr verfügbar, und ich kann es nirgendwo archiviert finden ... weißt du wo anderswo es veröffentlicht wurde? –

0

Ich bin mir nicht sicher, ob dies in WCF funktioniert, aber Sie können das AppDomain.UnhandledException Ereignis versuchen.

+0

'AppDomain.UnhandledException' ist nicht der Ort, um Ausnahmen zu behandeln, nur um sie zu protokollieren. Wenn die Ausnahme auf diese Ebene propagiert wird, wird die Anwendung beendet. – Darius