我們有一個配置爲使用ELMAH的ASP.NET MVC 3應用程序。我們在我們的Application_Error方法中也有這樣的代碼。 ELMAH和我們的自定義代碼都登錄到數據庫。同時使用ELMAH和Application_Error
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處理錯誤,如果真的發生了錯誤,就像在elmah註冊後的ASP.NET管道中,但在MVC應用程序運行之前一樣。
完美,謝謝! –