2010-08-22 1 views
6

IIS 7.0에서 실행되는 ASP.NET 4.0 MVC 프로젝트에서 내 사이트에 오류를 기록하도록 ELMAH를 설정하고 구성했습니다. 그러나 코드 500의 오류에 대한보고를 얻을 수 없습니다.ELMAH 코드 500 오류를 기록 할 수 없습니다

ELMAH는 0으로 나누기 예외를 만드는 간단한 컨트롤러를 설정하지만 ELMAH는이를 기록하지 않습니다. ELMAH를 사용하여 다른 메시지를 잘 기록 할 수 있으며 ErrorLog_Filtering에서 예외를 필터링하지 않습니다. 다음과 같이 또한

는 사용자 정의 페이지 표시 나는 Web.config의의의 httpErrors 섹션을 업데이트 한 :

<customErrors mode="RemoteOnly" defaultRedirect="~/error/GenericError"> 
    <error statusCode="403" redirect="~/error/AccessDenied" /> 
    <error statusCode="404" redirect="~/error/NotFound" /> 
    <error statusCode="500" redirect="~/error/Offline" /> 
    <error statusCode="501" redirect="~/error/Offline" /> 
    <error statusCode="503" redirect="~/error/Offline" /> 
</customErrors> 

마지막으로
<system.webServer> 
    <httpErrors errorMode="DetailedLocalOnly" > 
     <error statusCode="403" prefixLanguageFilePath="" path="/error/AccessDenied" responseMode="ExecuteURL" /> 
     <error statusCode="404" prefixLanguageFilePath="" path="/error/NotFound" responseMode="ExecuteURL" /> 
     <error statusCode="500" prefixLanguageFilePath="" path="/error/GenericError" responseMode="ExecuteURL" /> 
     <error statusCode="501" prefixLanguageFilePath="" path="/error/GenericError" responseMode="ExecuteURL" /> 
     <error statusCode="503" prefixLanguageFilePath="" path="/error/Offline" responseMode="ExecuteURL" /> 

을, 응용 프로그램 로그 파일을 검토 할 때, 코드 500 오류 메시지는 거기에 표시되지 않습니다.

누락 된 구성이 있습니까? 아니면 실수로 자신을 오류를 트래핑하고 전파하지 못하게합니까?

답변

3

FilterConfig.cs에서 HandleErrorAttributeRegisterGlobalFilters()에 추가하는 줄을 삭제해야합니다. this question에서 자세한 내용.