Ich habe einen kleinen WCF-Dienst entwickelt, der HTTP-Anforderungen verarbeitet.Fügen Sie alle internen Serverfehler in Windows-Ereignisprotokoll ein
Ich möchte von jedem Fehler bewusst sein, was geschieht:
- alles, was 500 Internal Server Error aus den Verträgen verursacht
- alles anzeigen, die eine Communication verursacht von den Bindungen sehen (Ich habe eine schriftliche benutzerdefinierte aber ich benutze auch Standard)
Die Fehler sollten in das Windows-Ereignisprotokoll eingegeben werden.
Meine Frage ist:
- Gibt es eine Möglichkeit, einen zentralen Event-Handler für den gesamten WCF-Stack, der alle Ausnahmen erfaßt hinzuzufügen und druckt sie in das Ereignisprotokoll?
Grüße.
Ich habe ein „throw new Communication (“ Fehler passiert „)“ in das ReceiveRequest Verfahren des benutzerdefinierten Bindung des Kanals eingesetzt ist. Der benutzerdefinierte Fehlerhandler wurde über "foreach (ChannelDispatcher cd in h.ChannelDispatchers) eingefügt. {Cd.ErrorHandlers.Add (new MyErrorHandler());} Allerdings wird mein benutzerdefinierter Fehlerhandler zu keiner Zeit aufgerufen. – Etan
Ich denke, Sie "Ich werfe zu früh! :-) Wenn ich mich richtig erinnere, startet die IErrorHandler-Schnittstelle erst dann, wenn der Dispatcher auf der Serverseite die Nachricht an die Methode eines Dienstobjekts gesendet hat. Alles, was davor steht, wird direkt an den Client –
gesendet die "neue CommunicationException (" error ")" in die Implementierung des Vertrags werfen wird auch nicht funktionieren. Welche Ausnahmen werden vom Fehlerhandler behandelt, wenn nicht die vor dem Versand und nicht die nach dem Versand? – Etan