문제

저는 404를 포함한 모든 예외에 대해 사용자 지정 오류 페이지를 사용할 수 있도록 ASP.Net MVC와 함께 ELMaH를 사용하는 몇 가지 접근 방식을 찾아보았습니다.

있다 부족함이 없다 ~의 질문 질문 ELMaH 유무에 관계없이 ASP.Net MVC에서 /Shared/Error.aspx가 올바르게 작동하도록 하는 방법.나는 그 작업에 문제가 없었지만 ELMaH와 함께 사용자 정의 404 페이지를 사용하는 솔루션이 너무 단순하고 더 많은 것이 있어야 한다는 느낌을 떨칠 수 없는 것 같습니다.

Web.Config에서 customErrors를 활성화한 후 HomeController에 새 작업을 만들었습니다.

public ActionResult PageNotFound()
{
    return null;
}

거기에서 ELMaH의 로그 필터링 기능을 활용하기 위해 Global.asax 파일에 새로운 방법을 추가하고 예외가 기록되도록 한 후 응답을 앞서 언급한 항목으로 다시 리디렉션했습니다. PageNotFound 조치결과:

    public void errorLog_Filtering(object sender, ExceptionFilterEventArgs e)
    {
        if (e.Exception.GetType().Equals(typeof(HttpException)))
        {
            HttpException ex = (HttpException)e.Exception;
            if (ex.GetHttpCode() == 404)
                Response.Redirect("/Home/PageNotFound");
        }
    }

기본적으로 MVC와 함께 제공되는 사항을 간과하고 있습니까(MVC와 관련하여 많은 방법을 찾고 있기 때문에), 아니면 더 간단한 솔루션이 존재하는 문제를 지나치게 생각하고 있습니까?어떤 의견이라도 감사드립니다.

도움이 되었습니까?

해결책

ASP.NET이 그런 종류의 작업을 처리할 수 있다고 확신합니다. global.asax 내부의 404 작업으로 리디렉션하기 위해 반드시 아무것도 호출할 필요는 없습니다.예를 보려면 아래를 참조하세요.

<configuration>
    <system.web>
        <customErrors mode="On">
            <error statusCode="404" redirect="/servererrors/404.aspx" />
        </customErrors>
    </system.web>
</configuration>

http://www.xefteri.com/articles/show.cfm?id=11

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top