我们有一个配置为使用ELMAH一个ASP.NET MVC 3应用程序。 我们也有我们这样的Application_Error方法的代码。 无论ELMAH和我们的自定义代码记录到数据库中。
protected void Application_Error(object sender, EventArgs e)
{
MvcApplication app = (MvcApplication)sender;
HttpContext httpContext = app.Context;
Exception ex = app.Server.GetLastError();
HttpException httpException = ex as HttpException;
//log the error with our custom logging
Server.ClearError();
if (httpContext.IsCustomErrorEnabled) //only show custom error if enabled in config
{
httpContext.Response.Clear();
httpContext.ClearError();
//show our own custom error page here
}
}
我们看到这个问题(不是一个真正的问题,但无论)是两个ELMAH和我们的自定义代码记录异常的DB。 我希望到Server.ClearError()的调用和httpContext.ClearError会处理错误,它将永远不会ELMAH。 不过,确实的事实,被记录的错误两次暗示ELMAH和的Application_Error并行运行基本上,他们都得到在同一时间未处理的异常? 如果是的话反正是有告诉ELMAH忽略这个错误吗?
我们的目的是只如果出现真的错了,像ELMAH登记之后将ASP.NET管道ELMAH处理错误,但MVC应用程序之前,将运行。