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가 등록 된 후, 그러나 MVC 응용 프로그램이 실행되기 전에 ASP.NET 파이프 라인과 같이 뭔가 잘못되면 ELMAH에서만 오류를 처리하게됩니다.
감사합니다. –