2011-08-23 4 views
0

ASP.NET MVC 2 페이지가 있습니다. 오류 또는 예외 동안 Global.asax의 Application_Error 메서드가 IIS7에서 실행되지 않습니다.Global.asax Application_Error가 IIS에서 실행되지 않습니다.

**하지만 VS2010에서 웹 응용 프로그램을 실행하면 화재를 수행합니다 (로컬 호스트 : someport)

내 코드 (C#을) :

protected void Application_Error(object sender, EventArgs e) 
{ 
    Exception exception = Server.GetLastError(); 
    string requestedUrl = HttpContext.Current.Request.Url.ToString(); 

    Response.Clear(); 
    // do something 
    Server.ClearError(); 
    Server.Redirect("Error"); 
} 

내 설정 :

<customErrors mode="On" defaultRedirect="~/Error"> 
</customErrors> 

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true" /> 
</system.webServer> 

도와주세요.

답변

4

웹 구성 설정이 기본 동작을 무시하기 때문입니다. 이 기능을 사용하지 않도록 설정해야합니다 (customErrors = "Off"및 defaultRedirect 제거 (또는 설정되지 않은 오류가 Application_Error 이벤트에 적용되도록 조건에 맞는 올바른 상태 코드 설정).이 기능을 사용하지 않으면 Application_Error 이벤트를 보낸 다음이 이벤트의 메시지를 표시하거나이 이벤트의 메시지를 표시합니다.이 웹 구성 설정은 오류를 처리하는 것이며 처리되지 않은 오류 만이 이벤트에 적용됩니다.

1

한 가지 더 ..
Application_Error는 예외로 인해 실행되지 않습니다. IIS에서 HandleError 특성으로 표시된 클래스/메서드에서 발생했습니다
asp.net 개발 서버에서 응용 프로그램을 실행하지만 실제 IIS에서는 작동하지 않는 경우 발생합니다 (이 함정에 빠졌습니다).

관련 문제