【发布时间】:2009-10-09 20:23:02
【问题描述】:
我在我的 ASP.NET 项目中使用 ELMAH 进行错误报告。一切都很好,除了当我调试一个项目时,我不想向允许的用户发送电子邮件报告。 我怎样才能完成这项壮举?
【问题讨论】:
-
您能告诉我们发生错误时您是如何发送电子邮件的吗?我假设您在发生错误时使用 ELMAH 发送电子邮件.. 那么您能否向我们展示您的 ELMAH 的 web.config 设置?
标签: elmah
我在我的 ASP.NET 项目中使用 ELMAH 进行错误报告。一切都很好,除了当我调试一个项目时,我不想向允许的用户发送电子邮件报告。 我怎样才能完成这项壮举?
【问题讨论】:
标签: elmah
假设您的开发和生产环境有不同的 web.config 文件,只需在开发 web.config 中禁用 Elmah。您需要注释掉(或删除)httpModules 部分中的 Elmah.ErrorLogModule 元素。
【讨论】:
也许您可以使用ErrorFiltering 关闭 Global.asax 中的电子邮件记录。比如:
void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs e)
{
#if DEBUG
e.Dismiss();
#endif
}
【讨论】:
另一种方法是使用 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
【讨论】: