이벤트 로그에 아무것도 기록되지 않은 경우 IIS 7.5에서 500 내부 서버 오류를 진단하는 방법은 무엇입니까?


43

기존 ASP.NET MVC3 사이트 (이미 구성되어 있음)에 대한 업데이트를 방금 배포했으며 IIS에 죽음의 블루 스크린이 표시됩니다.

HTTP 오류 500.0-
내부 서버 오류 내부 서버 오류가 발생하여 페이지를 표시 할 수 없습니다.

하나; 응용 프로그램 이벤트 로그에 항목에 대한 자세한 설명이 표시되는 항목이 없습니다.

이 문제를 진단하려면 어떻게해야합니까?


나는 여기서 똑같은 문제를 겪었다. 내 경험상 이벤트 로그가 비어 있으면 요청이 작업자 프로세스로 올바르게 라우팅되지 않은 것입니다. 최근 배포 중 하나에서 앱이 500 오류로 임의로 실패한 요청의 약 50 %가 로그에서 전혀 작동하지 않는 것으로 나타났습니다. 배포 후 발생하는 AppDomain 언로드에 문제가 있다고 생각합니다. 호기심으로 프로덕션 환경에서 바이러스 백신을 실행하고 있습니까? IIS를 재설정하면 문제가 해결됩니까 (다음 배포까지)?
ShadowChaser

답변:


41

IIS7의 요청 실패 추적 기능을 살펴보십시오.

IIS 7에서 추적을 사용하여 실패한 요청 문제 해결 실패한 요청 추적으로
문제 해결

<httpErrors>IIS가 파이프 라인에서 오류 메시지를 삼킬 수 있으므로 설정을 조정하는 것입니다 .

<configuration>
  <system.webServer>
    <httpErrors existingResponse="PassThrough" />
  </system.webServer>
</configuration>

사이트가 Classic ASP로 작성된 경우 ASP 구성 기능에서 브라우저로 오류 보내기 설정 을 켜 십시오 .

여기에 이미지 설명을 입력하십시오

마지막으로 Internet Explorer를 사용 하는 경우 고급 설정에서 친숙한 HTTP 오류 메시지 표시를 해제했는지 확인하십시오 (이미 이미 수행했거나 다른 브라우저를 사용하고있는 것 같습니다).


2
existingResponse가 Replace로 설정되었습니다. 팁 고마워.
Greg B

이것은 매우 좋은 대답이지만 ASP 구성 창을 시작하는 방법이 포함되어 있으면 개선 될 수 있습니다.
마이클 포터

13

나의 경우에는:

  • 이벤트 로그가 비어있었습니다.
  • web.config 손상되지 않았습니다-로컬 컴퓨터에서 동일을 사용하여 / 확인 inetmgr

드디어...

  • IIS 로그를 확인하면 다음과 같은 요청이 표시됩니다.

...Chrome/57.0.2987.133+Safari/537.36 500 19 5 312

핵심은 :

sc-status sc-substatus sc-win32-status 500 19 5

어느 인터넷 검색으로 폴더 IIS_USRS에 대한 읽기 권한 이 없다는 것을 알았 습니다.www


2
여기에서 상태 코드 목록을 찾았습니다. support.microsoft.com/en-us/help/943891/…
sirdank

4

가장 명백한 문제는 웹 응용 프로그램 폴더에 대한 NTFS 권한이 없거나 0입니다. 따라서 사이트를 제공하는 계정에 올바른 권한이 있는지 확인하십시오. 웹 디렉토리에 대한 적절한 NTFS 권한이 없으면 web.config에 넣은 내용은 읽지 않으므로 중요하지 않습니다.

빠른 확인은 모든 사람에게 모든 권한을 부여하는 것입니다. 사이트가 작동하기 시작하면 해당 사이트가 권한 문제임을 알고 적절한 권한을보다 적절한 계정에 할당하도록 설정할 수 있습니다.


1

IIS6에서 업그레이드하는 경우 web.config 중 하나는 6에서 작동하지만 IIS 7.5에서는 작동하지 않을 수 있습니다 ... 웹 사이트에 대한 IIS의 모든 아이콘을 두 번 클릭하면 형식에 대한 오류가 발생할 수 있습니다 (섹션 다른 섹션 아래에 있어야합니다 ...)


0

Azure Web App에서 동일한 문제가 발생했습니다. 로컬로 디버깅하는 동안 ajax 호출에서 리턴 된 오류 메시지 (JSON)가 브라우저로 완전히 리턴되었습니다. 그러나 일단 웹 응용 프로그램에 배포하면 메시지가 삼키고 기본 500 오류 메시지가 표시되었습니다. 따라서 web.config 태그 에서 existingResponse값 을 명시 적으로 설정 해야 PassThrough했습니다 httpErrors.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.