Как включить и отключить ELMAH в web.config и в коде позади? - PullRequest
8 голосов
/ 10 октября 2009

Я использую ELMAH для сообщений об ошибках в моих проектах ASP.NET. Все работает отлично, за исключением тех случаев, когда я отлаживаю проект и не хочу отправлять отчет по электронной почте разрешенным пользователям. Как я могу совершить этот подвиг?

Ответы [ 3 ]

8 голосов
/ 10 октября 2009

Если у вас есть разные файлы web.config для вашей среды разработки и производства, просто отключите Elmah в вашем файле разработки web.config. Вы можете закомментировать (или удалить) элемент Elmah.ErrorLogModule в разделе httpModules.

5 голосов
/ 10 октября 2009

Возможно, вы можете использовать ErrorFiltering , чтобы отключить регистрацию электронной почты в Global.asax. Что-то вроде:

void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs e)
{

#if DEBUG
    e.Dismiss();
#endif

}
0 голосов
/ 26 июля 2016

Другой способ - использовать метод ErrorMail_Mailing. Когда ELMAH отправляет электронное письмо, оно запускается первым (если оно присутствует в global.asax.cs)

public void ErrorMail_Mailing(object sender, ErrorMailEventArgs e)
{
#if DEBUG
    e.Mail.To.Clear();
    e.Mail.To.Add("MyAddress@myDomain.com");
    e.Mail.Subject = "Error in Development";
#endif
}

В приведенном выше примере можно выполнить преобразования в web.Debug.config & web.Release.config Но в этом методе вы можете сделать гораздо больше. Смотри http://scottonwriting.net/sowblog/archive/2011/01/06/customizing-elmah-s-error-emails.aspx

...