2012-06-20 3 views
0

MVC3 면도기 응용 프로그램에서 작업 중입니다. 처리되지 않은 예외를 기록하는 오류 처리 기능을 만들었습니다. 다음과 같은 설정 : 그것은 오류를 기록MVC3 - 면도기 : 오류 처리기를 두 번 호출하는 예외 동작에서

[ErrorHandlingAttribute] 
public class HomeController : Controller 

하지만 일부에서는 그 두 번 OnException 방법을 타격 :

public class ErrorHandlingAttribute : HandleErrorAttribute 
{ 
    public override void OnException(ExceptionContext context) 
    {   
     base.OnException(context); 
     LogException(context); 
    } 
} 

각 컨트롤러에 난 그냥 짖는 소리 오류 처리기를 추가해야합니다. 그런 다음 중복 된 로그를 씁니다.

아무도 내게 무슨 일이 일어 났는지 제안 할 수 있습니까?

많은 감사

+0

아마도 HandleError에 예외가 있습니까? 왜 기본 클래스처럼 이름을 지었습니까? – Dragouf

+0

아니요 다른 예외는 없습니다. 중단 점을 설정하고 동일한 예외를 두 번 기록합니다. 나는 'ErrorHandlingAttribute'로 이름을 바꿨다. thanks – user1211185

+1

Global.asax에서 글로벌 액션 필터로 추가 된 기본 'HandleError' 속성을 비활성화 했습니까? –

답변

2

당신은 당신의 Global.asax에서 기본적으로 등록되는 기본 HandleError 속성을 제거해야합니다. 이 속성을 사용자 지정 특성으로 바꿀 수 있습니다.

+1

'HandleError'가 활성화되고 커스텀 속성이 비활성화되면 예외 로그를 ​​한 번만 씁니다. 하지만'HandleError'를 커스텀 애트리뷰트로 바꾸면 두 번 쓰게됩니다. – user1211185

+2

아마도 사용자 정의 예외 속성이 HandleErrorAttribute에서 파생 되었기 때문에 :-) 기본 기능을 원하지 않으면'FilterAttribute'에서 직접 사용자 정의 속성을 파생시키고'IExceptionFilter' 인터페이스를 구현할 수 있습니다. –

관련 문제