5

내 web.config의 customErrors 태그에서 컨트롤러를 가리키고 있습니다. 내 컨트롤러에서 여러 응용 프로그램에서 공유하는 외부 오류 페이지로 리디렉션됩니다.내 customErrors 설정을 따르기 위해 ASP.NET MVC를 얻으려면 어떻게해야합니까?

<customErrors defaultRedirect="~/Error/ServerError" mode="On">

내 컨트롤러 : 나는 오류 처리를 테스트하는 오류 /에 ErrorTest를 호출하고있어

public class ErrorController : Controller 
{ 

    public ActionResult ServerError() 
    { 
     return Redirect("/Systems/ASPNETErrorHandling/ErrorPage.aspx"); 
    } 

    public ActionResult ErrorTest() 
    { 
     throw new Exception("testing error handling"); 
    } 
} 

. 하지만 항상 지정된 컨트롤러로 리디렉션하는 대신 Views/Shared/Error.cshtml로 리디렉션됩니다.

내 customErrors 설정에서 defaultRedirect 경로를 준수하도록 asp.net mvc를 얻으려면 어떻게해야합니까?

UDPATE : 나는 또한 this post에서 설명한대로 ELMAH를 사용하고 HandleErrorAttribute를 재정의합니다. .Net Reflector에서 기본 HandleErrorAttribute가보기로 오류를 설정하고 있음을 알 수 있습니다. Error.cshtml이나 다른 뷰로 리디렉션 할 수있는 일이 많지 않다고 생각합니다.

답변

2

내 질문에 대한 업데이트에서 말한 것처럼 ELMAH를 사용하려면 this post에 설명 된대로 HandleErrorAttribute를 무시합니다. 기본 클래스는 자동으로 오류를보기로 설정합니다. 그래서 나는 단지 base.OnException(context);을 주석 처리했으며 작동합니다. 나는 그것이 최선의 해결책인지는 모르겠지만 그것이 내 목적을 위해 작동해야한다고 생각한다.

관련 문제