2016-07-15 1 views
0

MVC + Postsharp로 예외 처리. >>> 비즈니스 계층 - - >>> 데이터 영역Postscarp를 사용하여 MVC에서 예외 처리

MVC 프로젝트 (추가 된이 파일에서 사용자 정의 필터 생성 된 예외를 포착 할 수있는 자료 컨트롤러.)

이 내 프로젝트 아키텍처

MVC 프로젝트입니다

비즈니스 계층 (미들웨어)

데이터 영역은 (포스트 그레스 데이터베이스 서버에 연결하여 데이터를 가져옵니다.)

,

DataLayer에서 PostSharp를 추가하여 데이터베이스 측에서 예외를 처리하고 NLog를 사용하여 기록/이메일을 보냈습니다. 여기에서 MVC Exception 파이프 라인에 사용자에게 예외가 발생했음을 알리는 적절한 메시지를 표시하려고합니다. 그래서 내가 사용

args.FlowBehavior = FlowBehavior.ThrowException; 

지금은 MVC OnException 메서드 에서이 예외를 잡기.

문제 : 나는 또한 MVC 예외에서 MVC 예외가 발생했을 때 예외로 전자 메일을 보내고 보냅니다.

이제 문제는 Postsharp에서 처리 한 Exeption에 대한 전자 메일을 이미 보내고 보냈습니다. 이제는 MVC Exception 처리기에 도달하면 다시 처리 할 것입니다.

예외가 이미 기록되었음을 MVC에서 어떻게 알 수 있습니까? MVC 예외 처리기에서 확인할 수있는 인수를 보내는 것처럼 포스트 샤프 엔드에서 아무 것도 할 수 있습니까?

해결책을 제안하거나 2 곳의 예외를 처리하려고하는 이유는이 문제

답변

1

를 해결하기 위해 안내하시기 바랍니다. 포스트 샤프 또는 전역 MVC onException 중 하나를 선택하십시오.

또는 새 예외에서 예외를 래핑 할 수 있습니다. postsharp에서 예를 들어, 당신은이이

MyAspect : OnMethodBoundaryAspect { 

    public override OnException (MethodExecutionArgs args) { 
     ///your code to handle the exception here 
     throw new HandledExceptin(args.Exception); 
    } 
} 
+0

이유 같은 것을 Postsharp가 호출되는 메소드의 이름이 무엇인지의 측면에서 우리에게 더 나은 결과를 제공하고 무엇 인수가 전달 된 것입니다 말할 수 있습니다. 예외가 occuered있다 이제부터 DataAccess 레이어에서 Postsharp가 처리했습니다. 일부 예외에 대한 친밀한 사용자 인터페이스가 필요했습니다. –

+0

랩핑 예외가 유스 케이스를 해결하지 못하는 이유가 있습니까? –