2009-10-09 1 views
8

Ich verwende ELMAH für die Fehlerberichterstattung in meinen ASP.NET-Projekten. Alles funktioniert gut, außer wenn ich ein Projekt debugge, möchte ich keinen E-Mail-Bericht an die erlaubten Benutzer senden. Wie kann ich dieses Kunststück vollbringen?Wie aktiviert und deaktiviert ELMAH in web.config und in Code hinter?

+0

können Sie uns bitte mitteilen, WIE Sie E-Mails senden, wenn ein Fehler auftritt? Ich gehe davon aus, dass Sie ELMAH verwenden, um E-Mails zu senden, wenn ein Fehler auftritt. Können Sie uns Ihre web.config-Einstellungen für ELMAH zeigen? –

Antwort

8

Angenommen, Sie haben unterschiedliche web.config-Dateien für Ihre Entwicklungs- und Produktionsumgebungen, deaktivieren Sie Elmah einfach in Ihrer Entwicklung web.config. Sie möchten das Element Elmah.ErrorLogModule im Abschnitt httpModules auskommentieren (oder entfernen).

+2

Mir ist keine Möglichkeit bekannt, ELMAH von Code-Behind zu deaktivieren. Sie können jedoch konfigurationsspezifische web.config-Dateien verwenden, um sie in Ihrer Entwicklungsumgebung zu deaktivieren (oder einfach eine andere Art der Protokollierung zu verwenden). Siehe den Beitrag von ScottGu hier: http://weblogs.asp.net/scottgu/archive/2007/09/21/tip-trick-automation-dev-qa-staging-and-production-web-config-settings-with-vs -2005.aspx –

+0

Es funktioniert nicht, um ErrorLogModule zu kommentieren. Kommentar errorLog von elmah Abschnitt! http://stackoverflow.com/a/25394016/2152973 –

5

Vielleicht können Sie ErrorFiltering verwenden, um die E-Mail-Protokollierung in der Global.asax zu deaktivieren. Etwas wie:

void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs e) 
{ 

#if DEBUG 
    e.Dismiss(); 
#endif 

} 
0

Eine andere Möglichkeit besteht darin, die ErrorMail_Mailing-Methode zu verwenden. Wenn ELMAH die E-Mail sendet, führt es diese erste (wenn sie in global.asax.cs)

public void ErrorMail_Mailing(object sender, ErrorMailEventArgs e) 
{ 
#if DEBUG 
    e.Mail.To.Clear(); 
    e.Mail.To.Add("[email protected]"); 
    e.Mail.Subject = "Error in Development"; 
#endif 
} 

Das obige Beispiel kann über die in den Transformationen sein web.Debug.config & web.Release.config. Aber Sie können viel mehr bei dieser Methode tun. Siehe http://scottonwriting.net/sowblog/archive/2011/01/06/customizing-elmah-s-error-emails.aspx

Verwandte Themen