COM+ 디버깅 시 특정 DLLHOST.EXE를 표시하는 다른 방법

DLLHOST.EXE에서 발생하는 Heap Corruption Troubleshooting을 위한 자료 수집 방법 에서 언급했던 방법 보다 편하게 원하는 특정 DLLHOST를 확인 할 수 있는 방법이 있어서 소개 합니다. 이미 오래전 부터 사용하던 방법인데 같이 올린다는 것이 까먹었네요.

DLLHOST.EXE를 새로운 이름의 파일로 복사할 필요가 없어서 간편한 방법 입니다.

1. 시작 메뉴->관리도구 (또는 컨트롤 패널 ->관리 도구) -> 구성 요소 서비스 MMC를 실행하시고 왼쪽의 트리에서 콘솔 루트 -> 구성 요소 서비스 -> 컴퓨터 -> 내 컴퓨터 -> COM+ 응용 프로그램 에서 현재 문제 모듈이 서비스 되고 있는 프로세스를 확인 합니다.

 

2. “COM+ 응용 프로그램”을 선택 후 위의 툴바의 표시된 버튼을 누르시면 서비스의 상태와 실행 중인 PID를 확인 할 수 있습니다. 이중에서 1번에서 확인 하신 응용프로그램을 선택 합니다.

 

3. 선택된 응용프로그램에서 오른쪽 마우스 버튼을 누르고 컨텍스트 메뉴에서 속성을 선택 합니다.

 

4. 등록 정보 다이얼로그에서 아래 그림과 같이 “고급” 탭을 선택하시고 다음 항목을 설정 합니다.

    1) "유휴 상태일 때도 실행"을 선택 합니다.

    2) "3GB 지원"을 선택 하세요.

 

    * 3GB 지원 설정을 해도 실제 메모리 관리 방법에는 영향이 없습니다만.

      다만 이후 새로 프로세스를 시작하게 되면 프로세스가 DLLHOST.EXE가 아니라 DLLHST3G.EXE로 바뀝니다.

 

5. “IISRESET”을 입력하여 IIS 를 재시동하고 IIS관련 프로세스들이 바뀐 속성으로 실행되고 있는지 TLIST 또는 Task Manager에서 확인 합니다.

즉, DLLHOST.EXE와 함께 DLLHST3G.EXE가 실행되고 있는지 확인 하면 됩니다.

 

6. 문제 재현 시 Full UserDump가 생성되도록 다음의 명령을 입력 합니다.

cscript.exe adplus.vbs -crash –FullOnFirst -pn DLLHST3G.EXE