2012-04-02 6 views

답변

2

알았어, 알아 냈어.

내 사용자 지정 ElmahHandleErrorAttribute 클래스에서 OnException() 메서드가 실제로 실행되지 않았 음을 나타냅니다. 그러나 코드의 첫 번째 줄은 "MyBase.OnException (context)"이며 HandleError 특성이 수행하는 작업을 시작합니다.

한 줄을 주석 처리하면 문제가 해결되었습니다.

문제점은 무엇입니까?

이 Mvc4 프로젝트에서 구현 된 Elmah.Mvc가 훌륭하게 작동합니다.

<customErrors mode="On" defaultRedirect="~/Error/General"> 
    <error statusCode="404" redirect="~/Error/Http404" /> 
</customErrors> 

나는 두 개의 액션 메소드, "Http404"에 대한 "일반"다른 하나는 다른과 ErrorController을 다음과 같이 나 또한의 Web.config에서 사용자 지정 오류 섹션이있다.

처리되지 않은 오류가 발생했다면 예외가 발생한 전자 메일 인 Elmah에 기록 된 예외가 발생한 다음 사용자 지정 "일반"보기가 표시됩니다 (404 페이지의 경우 Http404 페이지). 오류).

그러나 기본 "Error.vbhtml"파일을 찾을 수 없기 때문에 추가로 기록 된 예외 및 전자 메일도 수신되었습니다. (보기를 제거했습니다).

정직한 실수 ... 누군가가 밖으로 움직이는 것을 돕기를 바랍니다. :)

+0

이 설정을 사용하면 Global에 Application_Error 메서드를 구현할 필요가 없다는 것을 잊어 버리십시오. 압축을 사용하고 있다면 여전히 필요하지만 필터를 지우는 유일한 라인은 압축을 사용할 때 스크램블 된 출력을 방지합니다. –

-1

이 값은 web.config 파일의 customErrors element을 사용하여 제어 할 수 있습니다.

+0

이미 설정했는데 처리되지 않은 오류가있는 것처럼 보입니다. MVC 파이프 라인의 어딘가에서 여전히 기본 Error.vbhtml 뷰 (삭제 한 상태)로 이동하려고합니다. 그래서 그게 아니야. –

+0

또한 전역 파일에서 "filters.Add (New HandleErrorAttribute)"행을 주석 처리했습니다. 대신 사용자 정의 ElmahHandleErrorAttribute를 사용하고 있습니다. –

관련 문제