2012-01-19 3 views
1

RegisterGlobalFilters 및 HandleErrorAttribute를 사용하여 고생하고 나면 맨손으로 돌아가기로했습니다. 템플릿을 사용하여 VS10에 새로운 MVC 3 프로젝트를 만들었습니다. About-action에 DivideByZeroException을 추가하고 dev 서버를 시작하십시오. 노란색 화면이 표시되지 않을 것으로 예상됩니다.RegisterGlobalFilters 및 HandleErrorAttribute가 작동하지 않습니다.

하지만 그랬습니다.

왜 나에게 적합하지 않습니까?

업데이트

archil의와 일의 아담 Tuliper의 제안 종류. 오류보기가 호출되었습니다.

그런 다음 RegisterGlobalFilters에이 작업을 추가합니다.

filters.Add(new HandleErrorAttribute { ExceptionType = typeof(DivideByZeroException), View = "DivideByZeroException", Order = 1 }); 
filters.Add(new HandleErrorAttribute { View = "AllOtherExceptions", Order = 2 }); 

AllOtherExceptions보기가 호출되었습니다. 왜 DivideByZeroException 뷰가 아닌가?

추가 질문은 here으로 게시되었습니다.

+0

디버깅 오류 처리 및 기타 전역 코드 : 웹 서버를 컴파일 사이에서 재활용하십시오. – Martin

답변

5

HandleErrorAttribute는 다음과 같은 조건을 웹 설정에서 사용 가능

  • 에 CustomErrors을 충족 할 때 작동
  • , 그 오류 코드는 500

귀하의 경우와 같이 두 번째 조건입니다 맞춤 단어가 설정되어 있는지 확인하십시오.

<system.web> 
    <customErrors mode="On"></customErrors> 
</system.web> 
+0

솔직히 나는 당신의 반응을 예상했지만, 나는 그것을 일종의 일로 생각하지 않았다. MVC 처리기가 등록되지 않은 경우 대체로 생각했습니다. 제발, 내 업데이 트를 볼 수 있습니다. – Martin

2

web.config에서 사용자 지정 오류가 켜져 있습니까? 전원을 켜지 않으면 제대로 작동합니다. 예외가 HttpException 경우

+0

내 업데이트를 확인하십시오. – Martin

관련 문제