2010-12-01 2 views
0

웹 서비스를 통해 DB에 연결하는 ASP.NET MVC 웹 사이트가 있습니다.조건부로 모든 경로 재정의 (MVC/ASP)

WebService에 연결할 수없는 경우 서비스가 실행되고 있지 않음을 설명하는 페이지로 사용자를 리디렉션하고 싶습니다. 현재 WebService가 제대로 응답하지 않으면 충돌이 발생합니다.

이것을 수행하는 가장 좋은 방법은 무엇입니까? 나는 많은 컨트롤러를 가지고 있으므로이 특정 케이스에 대한 각 컨트롤러의 각 함수에 대한 에러 트래핑 코드 작성은 지루하고 많은 코드 반복을 필요로합니다.

답변

1

쉬운 옵션 중 하나는 기본 컨트롤러를 작성하는 것입니다. (OnActionExecuting) 전에 을 호출하거나() 예외가 발생하면 을 호출하고 각 컨트롤러에 : MyBaseController을 추가하면됩니다.

다른 옵션은 각 컨트롤러를 동일한 작업을 수행하는 필터 속성으로 꾸미는 것입니다.

1

컨트롤러의 HandleError 특성을 사용하여 특정 예외를 catch하고 오류 페이지로 리디렉션 할 수 있습니다. 또한이 클래스에서 상속 받아 OnException 메서드를 사용자 지정 논리로 재정의 할 수도 있습니다.

1

위대한 튜토리얼 here을 발견했습니다. 글로벌 수준에서 예상대로 작동하며 모두 구현됩니다. 큰!

업데이트 : 실제로는 404의 도움을 받아서 제대로 처리하지 못했습니다. 즉, 모든 Catch 블록 될 것 here

0

당신은 기본 controllor을 가지고 OnException 보호 재정의 무효 OnException (ExceptionContext filterContext)를 오버라이드 (override) 할 필요가있는 링크를 찾을 수 - 나는 완벽하게 응답 여기에 유래에 대한 또 다른 질문을 찾을 관리 컨트롤러 작업의 예외

관련 문제