ELMAH SQL Error Handler Datenbank Available nicht, was die Protokollierung geschieht?

StackOverflow https://stackoverflow.com/questions/758092

  •  09-09-2019
  •  | 
  •  

Frage

Ich teste ELMAH und haben sich bewusst auf die Datenbankverbindung für die ELMAH log in meiner Anwendung ab, um zu sehen, was in der Produktion geschieht, wenn die DB nicht verfügbar ist.

Es scheint, dass ELMAH kann nicht Falle seine eigene errors- die AXD-Datei nicht verfügbar ist, wenn die SQL databse Protokoll fehlschlägt.

Was ist das beabsichtigte Verhalten von ELMAH, wenn die Datenbank nicht verfügbar ist?

Wie kann ich meine Fehler diagnostizieren, wenn dies der Fall ist?

War es hilfreich?

Lösung

Nicht wirklich sicher ELMAH aber erwartetes Verhalten solchen Logging Frameworks ist keine Ausnahmen zu werfen, wenn etwas falsch mit ihnen geht. D. h wenn ELMAH Datenbank ist nach unten Ich würde annehmen, dass es einfach nicht, die Fehler zu Datenbank anmelden.

Wie oben vorgeschlagen, Sie können / sollten alternative Senken verwenden -. E-Mail oder Flat-Datei

Andere Tipps

  

Es scheint, dass ELMAH kann nicht Falle seiner eigenen   Fehler

ELMAH tut Fall seine eigenen Fehler zu einem gewissen Grad. Wenn der ErrorLogModule trifft eine Ausnahme bei dem Versuch, den Fehler zu protokollieren dann ergeb die Ausnahme von der Protokollierung auf den Standard .NET Framework Trace-Einrichtung gesendet wird. Siehe Linie 123 von 1,0 . Quellen auch die folgenden Freilos von der ASP.NET-Dokumentation für die .NET Framework-Standardverfolgung immer mit ASP.NET Arbeits Tracing:

Lösungsweg: Die Integration von ASP.NET mit System.Diagnostics Tracing Tracing

  

die AXD-Datei ist nicht verfügbar, wenn die   SQL databse Protokoll fehlschlägt.

Das ist richtig. SQL Server-Datenbankverbindung muss funktional sein, Fehler in einer SQL Server-Datenbank gespeichert ist, anzuzeigen, wenn SqlErrorLog verwendet wird.

  

Was ist das beabsichtigte Verhalten von ELMAH   wenn die Datenbank nicht verfügbar ist?

Wenn zum Beispiel der SQL Server-Datenbank nach unten ist, wird ein SqlException während Anmeldung auftreten. ELMAH wird dann den SqlException Objektinhalt zum Standard .NET Framework Trace-Einrichtung senden.

  

Wie kann ich meine Fehler, wenn diese Diagnose   auftritt?

Die hier beste Option ist auch aktivieren Protokollierung und E-Mail-Versand von Fehlern. Wenn die Datenbank nach unten ist, stehen die Chancen gut, dass die E-Mail-Gateway ist und Sie werden nach wie vor von Fehlern benachrichtigt werden. Die Fehler werden in der Tat erhalten protokollierte in einiger Mailbox (es). Dies hat auch den Vorteil, dass, wenn der Mail-Gateway immer nach unten ist dann sind die Chancen, dass die Datenbank sein wird und Fehler dort prokolliert wird. Wenn beide unten sind, aber dann müssen Sie ernsthaft Ihre Produktionsinfrastruktur überprüfen und eventuell Maßnahmen zu ergreifen, die Gesundheit Ihres Systems über zusätzliche Maßnahmen zur Überwachung.

Sie können jederzeit die XML-Datei Option verwenden, um Ihre Fehler zu protokollieren.

Ich glaube, Sie vermischen Kontexten etwas.

ELMAH Verhalten, wenn die Datenbank nicht vorhanden ist, keine Fehler in der Datenbank zu protokollieren. Wenn eine Ausnahme auf dem Server ausgelöst wird, oder wenn Sie eine Ausnahme über eine ErrorSignal erhöhen, wird ELMAH werde diese Ausnahme durch entweder einen gelben Bildschirm oder eine benutzerdefinierten Fehler Seite passieren lassen (Ihre Einstellung.)

Da Errors.axd Seite ist nur für diejenigen, die es zu sehen sein soll (im Idealfall) es in Ordnung ist, dass Fehler an den Benutzer zu präsentieren.

Das Endergebnis ist, dass, wenn die Fehler-Datenbank ist nach unten nicht Fehler diagnostizieren können. Für uns, wenn das der Fall wäre, würden wir größere Probleme haben, da die Fehlerdatenbank mit der Produktionsdatenbank sitzt.


Ich plädiere auch gegen die Verwendung von XML-Protokollierung für die primäre Protokollquelle. SQL Server wird Ihnen die beste Leistung geben, ohne die Dateien verwalten zu müssen. Mit XML-Protokollierung, die nicht der Fall ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top