2011-10-24 5 views
0

iis 6에서 사용자 정의 오류 페이지를 설치하려고하는 응용 프로그램 (응용 프로그램 풀이있는 폴더)이 있습니다. 웹 구성에서 사용자 지정 오류에 대한 요소가 있지만 결코 나타나지 않습니다. 내가 IIS에 가서 응용 프로그램의 속성을 보면 oops.html을 가리 키도록 사용자 정의 오류를 설정할 수 있습니다. 그것은 IIS가 내 web.config에서 오류를 처리하기위한 설정을 사용하지 않는 것 같습니다. 여기 <customErrors mode = "On"을 사용할 때 IIS 6 swallowing 오류

내가 Web.config의에서 이 무엇

<system.web> 
    ... 
    <customErrors mode="On" defaultRedirect="/oops.html" redirectMode="ResponseRewrite" /> 
    ... 
</system.web> 
<system.webServer> 
    ... 
    <httpErrors existingResponse="PassThrough" /> 
    ... 
<system.webServer> 

응용 프로그램에 대한 주소는 다음과 같이이다 : WWW :

웹 설정이있는 www.mysite.com/myappfolder/ 사이트 .co.kr/경우 MyAppFolder/

및 oops.html은에 있습니다 www.mysite.com/myappfolder/oops.html

을3210

로 이동하려고 시도하는 경우 : www.mysite.com/myappfolder/NothingReal 404가 throw되며 oops.html으로 리디렉션하도록 IIS를 구성한 경우에만 해당 페이지가 표시됩니다.

고객 오류의 대상을 지정하는 규칙은 무엇입니까? 나는// myappfolder/oops.html을 사용하는 것에 대해 "/"를 제거해야합니까? IIS 6 오류 처리를 건너 뛰고 모든 오류를 내 페이지로 리디렉션하려면 어떻게합니까?

+0

최소한 기본 asp.net 오류 페이지가 있습니까? 아니면'oops.html' 페이지를 찾지 못했습니까? – guanome

+0

사용자 정의 오류를 사용하도록 웹 구성을 업데이트하는 방법을 알려주는 오류 페이지가 나타납니다. 그러나 이것은 customErrors에 대한 옵션에 대해 MSDN에서 읽은 것과 다릅니다. – QueueHammer

답변

0

그래서 이것은 여러 가지 문제가 있습니다. 첫 번째는 서버에서 두 가지 수준의 오류 처리가 진행되고 있다는 것입니다.

첫 번째 수준은 IIS에 있습니다. IIS가 오류를 건너 오면 오류 페이지를 사용하여 문제를 중계하거나 모호하게 만듭니다.

두 번째 수준은 ASP 런타임에 있습니다. 페이지에서 오류가 발생하면 스크립트는 웹 구성이이를 수행하도록 구성된 경우 "oops"페이지에 위임 할 수 있습니다.

asp가 "oops"페이지로 리디렉션되지 않거나 해당 페이지의 위치가 잘못 설정된 경우 IIS가 오류를 처리합니다. 리디렉션하지 않을 경우 500 수준의 오류가 발생합니다. "oops"페이지의 위치가 잘못되었을 경우 404가 발생합니다.

내 문제는이 문제가 처리되는 방식이며 IIS와 웹 설정이 동일한 페이지를 가리켜 디버깅하는 것입니다. 약간 더 도전적이다.

결국 나는 내 경로를 리디렉션을 처리하는 webconfig와 관련이있는 첫 번째 문제로 해결했습니다. ~ /는 잘못 사용되었습니다.

0

~/oops.html을 사용해 보셨습니까?

+0

에서 내가 아는 ~은 www.mysite.com을 의미하므로 www.mysite.com/myappfolder/oops에있는 파일은 www.mysite.com/oops.html로 해석됩니다.html – QueueHammer

+1

~을 사용할 때 루트 + 가상 경로가있는 경우 그 경로를 렌더링한다는 의미입니다. ~ /는 가상 폴더의 App_Domain 내에서/myappfolder가 호출되면 렌더링합니다. 해당 폴더 안에 web.config가 있습니까? – djsolid

0

web.config의 customErrors 요소는 ASP.NET 런타임에서 모니터링하는 리소스에만 적용됩니다. 기본적으로 이미지 및 HTML 파일과 같은 정적 리소스는 IIS에서 처리되며 ASP.NET 런타임에 전달되지 않습니다.

+0

이것은 좋은 지적입니다. – QueueHammer