2011-09-01 3 views
4

내 Web.Config 파일의 설정을 다음문제는 <customErrors에>

Asp.net 4. 사용합니다.

<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="/ErrorPages/Oops.aspx"> 
     <error statusCode="404" redirect="/ErrorPages/404.aspx" /> 
    </customErrors> 

나는 어떤 예외의 defaultRedirect에 URL을 적용하고 404 발견뿐만 아니라 페이지의 redirectMode="ResponseRewrite"를 사용해야합니다.

페이지를 찾을 수 없다는 것을 제대로 관리 할 수 ​​있지만 (404.aspx 페이지를 가져올 수 있음) 다른 페이지에서 예외가 발생하는 경우 "Internet Explorer cannot display the webpage"이 발생하고 처리 할 수 ​​없습니다. defaultRedirect Oops.aspx에 도달합니다.

내가 여기서 잘못하고있는 것은 무엇입니까? 감사합니다

+0

oops.aspx를 가져 오는 작업은 직접 작동합니까? oops.aspx에서 오류가 발생하면 무한 리디렉션 루프가 발생합니다. –

+0

예 oops.aspx는 어떤 아이디어로 직접 작업 할 수 있습니까? – GibboK

+0

MVC 프레임 워크를 사용하고 있습니까? –

답변

1

~을 리디렉션 URL에 넣어보세요.

리디렉션 = "~/ErrorPages/404.aspx"오류가 재 지정의 대상과 같은 aspx 페이지를 가지고와

2

하나의 문제는 페이지에 국한되지 않는 오류 (세계에서 예를 들어 오류 .asax; web.config 처리 오류도 대상 페이지에 의해 throw되므로 무한 리디렉션 루프가 발생할 수 있습니다.

이러한 이유로 최소한 defaultRedirect의 대상으로 정적 HTML 페이지를 사용하는 것이 좋습니다.

1

오류 페이지 내용은 몇 바이트이며 HTTP 상태 코드는 200 이외로 설정합니까? Internet Explorer에서 "친숙한 HTTP 오류 메시지 표시"를 기본으로 설정하면 IE 브라우저에서 내용이 512 바이트 미만인 사용자 지정 오류 페이지가 표시되지 않고 "친숙한"오류 메시지로 바뀝니다.

이것이 문제인지 확인하려면 도구, 인터넷 옵션, 고급 설정에서 "친숙한 HTTP 오류 메시지 표시"옵션을 해제하십시오. 설정 영역의 찾아보기 범주 아래에 있습니다.

옵션이 해제 된 상태에서 페이지가 표시되면 다시 켜고 페이지를 변경하여 이미지 또는 512 바이트를 넘는 크기가 될 다른 요소를 추가하십시오.