IIS 7.5, 2008rc2, 클래식 ASP, 500 오류 메시지 :
내부 서버 오류가 발생하여 페이지를 표시 할 수 없습니다.
좀 더 자세한 오류를 얻으려면 IIS를 구성하는 방법을 알아야합니다.
ASP 구성의 모든 디버깅 옵션을 true로 설정하려고했습니다.
그러나 그것은 효과가 없었습니다. 누구든지 나를 도울 수 있습니까?
IIS 7.5, 2008rc2, 클래식 ASP, 500 오류 메시지 :
내부 서버 오류가 발생하여 페이지를 표시 할 수 없습니다.
좀 더 자세한 오류를 얻으려면 IIS를 구성하는 방법을 알아야합니다.
ASP 구성의 모든 디버깅 옵션을 true로 설정하려고했습니다.
그러나 그것은 효과가 없었습니다. 누구든지 나를 도울 수 있습니까?
답변:
나는 같은 문제에 직면했고 Alex K와 같은 방식으로 고쳤다 .
"브라우저에 오류 보내기"가 작동하지 않으면 다음과 같이 설정하십시오.
오류 페이지-> 500-> 기능 설정 편집-> "상세한 오류"
또한 전송 된 오류 페이지의 내용이 매우 짧고 IE를 사용하는 경우 IE는 서버에서 전송 된 유용한 내용을 무시하고 대신 일반적인 오류 페이지를 표시합니다. IE의 옵션에서 이것을 끄거나 다른 브라우저를 사용할 수 있습니다.
Turn Windows features on or off > Internet Information Services > World Wide Web Services > Common HTTP Features > [✓] HTTP Errors
..
HOW-TO
대한 @JessTelford ?
원격 서버에있는 경우 다음과 같이 web.config 파일을 구성 할 수 있습니다.
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
<asp scriptErrorSentToBrowser="true"/>
</system.webServer>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true"/>
</system.web>
<system.webserver>
제 경우 에는 설정이 충분했습니다. 감사합니다.
system.webServer
섹션은 클래식 ASP를 실행할 때도 IIS 7 이상에서 읽습니다
customErrors
(예 : IIS 7+, ASP.NET, Classic AppPool ) tedgustaf.com/blog/2011/5/…
IIS 관리자의 사이트 홈 화면에서 "ASP"를 두 번 클릭하고 "디버깅 속성"을 펼친 후 "오류를 브라우저로 보내기"를 활성화 한 다음 "적용"을 클릭하십시오.
홈 화면의 "오류 페이지"에서 "500"을 선택한 다음 "기능 설정 편집"을 선택하고 "상세 오류"를 선택하십시오.
IIS 8.0 (Windows Server 2012)에도 동일한 단계가 적용됩니다.
에서 의 Web.config 에서
<system.webServer>
줄을 바꾸거나 추가하십시오
<httpErrors errorMode="Detailed"></httpErrors>
와
<httpErrors existingResponse="PassThrough" errorMode="Detailed"></httpErrors>
IIS7은 기본적으로 응용 프로그램에서 생성 된 4xx 및 5xx와 같은 HTTP 상태 코드를 파이프 라인 위로 가로 채기 때문입니다.
그런 다음 "ASP"섹션에서 " 브라우저로 오류 보내기 "를 활성화 하고 " 오류 페이지 / 기능 설정 편집 "에서 "상세 오류"를 선택하십시오.
또한 웹 사이트 폴더에 대한 쓰기 권한 을 IIS_IUSRS 기본 제공 그룹에 부여하십시오.
Set-WebConfigurationProperty '/system.WebServer/httpErrors' -Name errorMode -Value Detailed
TLDR : 먼저 파이프 라인에서 오류가 발생하는 위치를 확인하고 (오류와 유사한 화면의 스크린 샷을 스크롤하여 스크롤) 새로운 것을 가져 오기 위해 변경을 반복하십시오.
여기에있는 파일이 보이면 ...
% SystemDrive % \ inetpub \ custerr \\ 500.htm
... 일반적으로 다음과 같습니다.
... ** IIS에 현재 구성된 오류 페이지가 표시됩니다 ** ASP.net customErrors 설정, ASP 오류 세부 사항 설정 또는 "친숙한 HTTP 오류"브라우저 설정을 변경할 필요가 없습니다.
누군가 스크린 샷을 변경 한 경우를 대비하여 스크린 샷을 신뢰하는 대신 위의 참조 경로를보고 싶을 수도 있습니다.
이 경우 < httpErrors > 또는 IIS 관리자에서 오류 페이지 -> 기능 설정 편집 설정이 표시됩니다. 이에 대한 기본값은 서버 노드 수준 (사이트 수준이 아닌) 에서 errorMode = DetailedLocalOnly 입니다. 즉, 원격 상태에서이 구성된 오류 페이지가 표시되지만 서버에 로컬로 로그온하여 전체를 볼 수 있어야합니다. 다음과 같은 오류가 발생합니다.
현재 오류를 수정하기 위해 해당 시점에 필요한 모든 것이 있어야합니다.
그것은 몇 가지 가능성을 남깁니다.
원격으로 볼 수 있도록 사이트의 httpErrors 를 "Detailed"로 변경하십시오 . 그러나 작동하지 않으면 오류가 이미 구성 오류 일 수 있습니다. 위의 # 3을 참조하십시오. 따라서 # 4 또는 # 5에 갇혀있을 수 있으며 서버 팀원이 필요합니다.
... 그리고 당신은 이와 같은 것을 보게 될 것입니다 ...
... 그런 다음 IIS 관리자의 사이트-> IIS-> ASP-> 디버깅 속성에서 "오류를 브라우저로 보내기"를 true로 변경해야합니다.
아니면 이거...
... 브라우저에서 친숙한 오류를 비활성화하거나 피들러의 웹뷰를 사용하여 실제 응답 과 브라우저가 표시하도록 선택한 것을 확인해야합니다.
이걸 보면 ...
... 사용자 정의 오류는 작동하지만 사용자 정의 오류 페이지가 없습니다 (물론이 시점에서 클래식 ASP가 아닌 .net에 대해 이야기했습니다). 서버에서 보려면 web.config의 customErrors 태그를 RemoteOnly로 변경하거나 원격으로 보려면 Off로 변경해야합니다.
사이트와 같은 스타일의 것이 있으면 사용자 정의 오류가 On 또는 RemoteOnly 일 가능성이 있으며 사용자 정의 페이지가 표시됩니다 (예 : MVC의 Views-> Shared-> Error.cshtml). 즉, 누군가가 IIS에서 httpErrors에 대한 페이지를 변경했을 가능성은 거의 없으므로 첫 번째 섹션을 참조하십시오.
"existingResponse"httpErrors 속성 값을 "PassThrough"로 설정하십시오. YSOD가 표시되지 않는 "바꾸기"로 광산을 설정했습니다.
<httpErrors errorMode="Detailed" existingResponse="PassThrough">
아무도 언급하지 않은 한 가지는 매우 신속하고 임시적인 수정입니다. 해당 웹 서버의 로컬 호스트에서 오류를 볼 수 있습니다.
그것을 발견.
관리자로 cmd를 실행하고 system32 \ inetsrv 폴더로 이동하여 다음을 실행하십시오.
appcmd.exe set config -section:system.webServer/httpErrors -allowAbsolutePathsWhenDelegated:true
이제 자세한 ASP 오류를 볼 수 있습니다.