ASP.NET이 IIS 6.0에서 교착 상태 덤프 파일을 생성 하는 방법

요약

Microsoft 인터넷 정보 서비스 (IIS) 6.0에서 교착 상태가 발생 하면, 다음과 유사한 메시지가 응용 프로그램 로그에 나타납니다: 다음과 유사한 메시지가 시스템 로그에 표시 됩니다 또한:

진단 위한 덤프 파일 생성

IIS 6.0 작업자 프로세스가 고아 라는 새로운 기능을 있습니다. 이 기능을 사용 하면 프로세스가 종료 되기 전에 재활용 되도록 예약 되를 감시할 수 있습니다. 고아 작업자 프로세스는 프로세스에 디버거를 연결 하 고 조사에 대 한 덤프 파일을 생성 하는 데 사용할 수 있습니다.

참고: IIS 5.0 호환 모드에서 프로세스를 실행 하는 경우이 기능을 사용 하지 않습니다.

Windows 용 디버깅 도구를 다운로드 합니다.

Windows 용 디버깅 도구를 다운로드 하는 사용자는 다음 Microsoft 웹 사이트를 방문.

Windows 32 비트 버전:Windows 64 비트 버전:참고: Windows 용 디버깅 도구를 설치한 경우 다음 디렉터리에 파일을 저장 해야.
C:\Debuggers

작업자 프로세스가 고아 상태가 될 때 실행할 배치 파일 만들기

  1. 메모장을 시작 합니다.
  2. 메모장에 다음 코드를 붙여 넣습니다.
    @if "%_echo%"=="" echo offsetlocal
    set TIMESTAMP=%DATE:~-9%_%TIME%
    set TIMESTAMP=%TIMESTAMP:/=_%
    set TIMESTAMP=%TIMESTAMP::=_%
    set TIMESTAMP=%TIMESTAMP:.=_%
    set TIMESTAMP=%TIMESTAMP: =_%
    set FILENAME=c:\crash_PID_%1_%TIMESTAMP%.dmp
    set LOG=c:\log.txt
    set COMMAND=c:\debuggers\cdb.exe -c ".dump /o /ma %FILENAME%;q" -p %1

    echo %COMMAND% > %LOG%
    %COMMAND%

    endlocal
  3. 다른 이름으로 저장
    .Cmd 파일 이름입니다. 이 예제에서는 이름을 Action.cmd 파일. 그러나 필요에 따라 파일을 이름을 수 있습니다.
참고: 고아 장소와 결과 덤프 파일이 생성 될 위치를 수정 해야 할 수 있습니다.

고아 작업자 프로세스 설정 구성

  1. 명령 프롬프트에서, 다음 명령을 입력하고 ENTER키를 누릅니다.
    cd \Inetpub\adminscripts
  2. 고아 작업자 프로세스 기능을 사용 하려면 명령 프롬프트에서 다음 명령을 입력 합니다.
    adsutil.vbs SET W3SVC/AppPools/DefaultAppPool/OrphanWorkerProcess TRUE
  3. 명령 프롬프트에서 프로세스가 재활용 되도록 예약 될 때 실행할 실행 파일을 설정 합니다. 예를 들어,이 경우 사용 하 여 "만들기는 배치 파일을 실행할 때 한 작업자 프로세스가 고아 상태가" 절에서 만든 배치 파일.
    adsutil.vbs SET W3SVC/AppPools/DefaultAppPool/OrphanActionExe "c:\action.cmd"
    adsutil.vbs SET W3SVC/AppPools/DefaultAppPool/OrphanActionParams "%1%" 
참고: OrphanActionExe 옵션이 "만들기는 배치 파일을 실행할 때 한 작업자 프로세스가 고아 상태가" 절에서 만든 배치 파일의 위치를 가리키는지 확인 합니다. 또한이 파일에 W3wp.exe 프로세스의 id에 읽기 및 실행 권한이 있는지 확인 합니다.

참고: 정상적인 상태가 아님을 보고 되는 작업자 프로세스를 디버깅 하려면 IIS를 사용 하면 출시 된 작업자 프로세스를 모니터 하 고 있는지 확인 합니다. IIS에서 자동으로 작업자 프로세스 메모리에서 제거 되지는. 이러한 작업자 프로세스를 제대로 처리 하지 않는 경우 사용자의 컴퓨터에 많은 오류가 발생 한 작업자 프로세스를 실행할 수 있습니다. 이러한 작업자 프로세스가 다른 프로세스에 필요한 리소스를 연결할 수 있습니다. 이러한 리소스를 해제 하는 신속 하 게 이러한 작업자 프로세스 끝나야 합니다. 일부 조건에서 이러한 작업자 프로세스 메타 베이스 액세스를 차단할 수 있습니다. 웹 서비스 자체의 문제나 다른 작업자 프로세스를 사용 하 여 문제가 발생 합니다.

참조

자세한 내용은 다음 Microsoft Developer Network (MSDN) 웹 사이트를 방문 하십시오.정상적인 상태가 아님을 보고 되는 작업자 프로세스를 디버깅 하는 방법에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
속성

문서 ID: 828222 - 마지막 검토: 2017. 2. 7. - 수정: 2

피드백