2016-03-29 6 views
1

In unserer ASP.Net-Web-API-Anwendung planen wir, die Handle-Ausnahmen über das globale Ausnahmefilterattribut zu behandeln, wie in der folgenden Tabelle beschrieben: link.ASP.Net Web API-Ausnahmefilter, Protokollierung in fehlgeschlagener Datenbank

Wir planen, die Ausnahme in mehreren Medien wie Datenbank, Dateien mit NLog protokollieren. Was mich verblüfft, ist ein Medium wie Database, wenn wir uns anmelden und es gibt eine Ausnahme wie Datenbank down, Verbindungstimeout und mehrere andere, dann wird es in Endlosschleife gehen, da es versuchen wird, die Ausnahme zu protokollieren, die immer eine zurückgibt Ausnahme.

Gibt es einen Mechanismus zum 1 oder 2 versucht zu beschränken und danach stillschweigend scheitern, nicht in eine Endlosschleife eingeben, erhalten alle Zeiger

Antwort

2

Wir planen die Ausnahme in mehreren Medien wie Datenbank zu protokollieren, Dateien mit NLog. Was mich verblüfft, ist ein Medium wie Database, Wenn wir loggen und es gibt eine Ausnahme wie Datenbank down, Verbindung Timeout und mehrere andere, dann wird es in Endlosschleife gehen, wie es versuchen wird, die Ausnahme zu protokollieren, die sein wird geben Sie immer eine Ausnahme zurück.

Deshalb sollten Sie unbedingt sicherstellen, dass Ihr Logging-Code nie versagt. Zum Beispiel, indem Sie es in eine try/catch Anweisung einpacken.

+0

Wenn ich Exception Filter verwende, habe ich die Möglichkeit, einen Try Catch-Block zu verwenden, da ich eine OnException-Methode überschreiben kann, die automatisch bei Ausnahme ausgelöst wird, bis ich die spezifischen Fehlermeldungen abhöre diese Schleife. Es könnte hundert solcher Nachrichten geben, was ist der Ausweg? –

+0

bedeutet Ihre Nachricht, dass in OnException override-Methode, ich die Protokollierung in einen Try Catch und dies würde auf Ausnahme in diesem Teil kümmern, wird nicht erneut den OnException-Aufruf als ich erwarte ich –

Verwandte Themen