4

filterConfig 등록 내에 HandleError 특성을 적용하여 응용 프로그램의 전역 오류 처리를 사용하도록 설정했습니다.MVC 4 응용 프로그램에서 사용자 지정 오류가있는 UnauthorizedAccessException 처리

public class FilterConfig 
{ 
    public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new HandleErrorAttribute()); 
    } 
} 

각 서버 오류에 대해 친숙한 오류 메시지가 표시되도록 맞춤 오류 (web.config)를 사용하고 있습니다.

<customErrors mode="On" ></customErrors> 

이 대부분의 예외 잘 작동하는 듯 나는 (공유보기 폴더에 Error.cshtml) 그 사용자 지정 오류 페이지보기에서 예상되는 동작 표시되고 있었다를 얻고 있었다.

그러나 최근에 나는 이것이 Throw 된 오류가 UnauthorizedAccessException 인 경우 표시되는 동작이 아니라는 사실을 알아 냈습니다.

필자는이 UnauthorizedAccessException 예외가 표준 예외와 마찬가지로 일반 500 내부 서버 오류를 반환한다는 것을 알게되었습니다.

그렇다면 customError 설정에 따라 표준 예외가 어떻게 유지 되나 UnauthorizedAccessException은 발생하지 않습니까?

그리고 어떻게 그들이 동일한 행동을하도록 할 수 있습니다. 둘 다 본질적으로 최종 사용자가 보지 못하게하려는 오류입니다.

+2

이 질문을보십시오. http://stackoverflow.com/questions/12183653/mvc-handleerror-filter-didnt-catch-an-exception – polybios

답변

1

이 블로그 포스트는 unauthorizedAccessException을 처리하는 방법을 결정할 수 있도록 예외 처리에 대한 개요를 제공했습니다. 이는 본질적으로 Application_OnStart 내에서 처리하는 것을 의미합니다. 나는 그것이의 Application_OnStart에서 모든 것을 처리하기 위해 최선의 기회라고 판단했습니다 내 목적을 위해, 그래서 내 목적을 위해

http://prideparrot.com/blog/archive/2012/5/exception_handling_in_asp_net_mvc

는 HandleErrorAttribute와 오류를 처리와 세계의 Application_OnStart에서 많은 점을없는 것

0

당신은 당신이 다음과 같은 컨트롤러의 OnException 방법을 대체 할 수 있습니다 정상적인 사용자 지정 오류 페이지를 통해 이동 UnauthorizedAccessException처럼 '처리되지 않은'예외를 강제 할 경우

protected override void OnException(ExceptionContext filterContext) 
    { 
     base.OnException(filterContext); 

     if (!filterContext.ExceptionHandled && filterContext.RequestContext.HttpContext.IsCustomErrorEnabled) 
     { 
      filterContext.ExceptionHandled = true; 

      filterContext.HttpContext.Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError; 
      filterContext.Result = View("Error", 
       new HandleErrorInfo(filterContext.Exception, filterContext.GetCurrentControllerName(), filterContext.GetCurrentActionName())); 
     } 
    } 

당신이 참조한 기사는 오류 처리 기술에 대한보다 자세한 설명을위한 훌륭한 참고 자료이며, 또한 고려해야합니다.

관련 문제