문제

ASP.NET 앱에서 뭔가 나쁜 일을 하고 있습니다.내가 사용하고 있는 CTP 라이브러리가 많을 수도 있고 뭔가를 제대로 처리하지 못할 수도 있습니다.그러나 ASP.NET을 Vista IIS7 설치 또는 서버의 IIS6 설치에 재배포하면 IIS 작업자 프로세스가 중단됩니다.

나는 요청이 있을 때 유용한 정보를 얻기 위해 사이트를 크롤링하는 멀티스레드 짐승인 HTTP 크롤러로 문제의 범위를 좁혔습니다.appDomain을 정상적으로 언로드하고 다시 로드하는 대신 크롤러를 시작하고 앱을 맨 위에 다시 배포하면 IIS 작업자 프로세스가 충돌하고(충돌 메시지 표시) 앱 도메인을 계속 다시 로드합니다.

이러한 충돌이 발생하면 분석을 위한 크래시 덤프를 어디에서 찾을 수 있습니까?

도움이 되었습니까?

해결책

Windows용 디버깅 도구 다운로드:http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx

Windows용 디버깅 도구에는 프로세스가 충돌할 때 덤프를 생성할 수 있는 스크립트(ADPLUS)가 있습니다.http://support.microsoft.com/kb/286350

명령은 다음과 같아야 합니다(IIS6을 사용하는 경우).

cscript adplus.vbs -crash -pn w3wp.exe

이 명령은 디버거를 작업자 프로세스에 연결합니다.충돌이 발생하면 덤프(*.DMP 파일)가 생성됩니다.

WinDBG에서 열 수 있습니다(Windows용 디버깅 도구에도 포함되어 있음).파일 > 크래시 덤프 열기...

기본적으로 WinDBG는 프로세스가 중단된 스레드를 명령줄 옆에 표시합니다.

WinDBG에서 가장 먼저 해야 할 일은 .NET Framework 확장을 로드하는 것입니다.

.loadby sos mscorwks

그런 다음 관리되는 호출 스택을 표시합니다.

!clrstack

스레드가 관리 코드를 실행하고 있지 않은 경우 네이티브 스택을 확인해야 합니다.

kpn 200

이것은 당신에게 몇 가지 아이디어를 줄 것입니다.문제 해결을 계속하려면 다음 문서를 읽어 보시기 바랍니다.

http://msdn.microsoft.com/en-us/library/ee817663.aspx

다른 팁

빠르게 검색해서 찾았습니다 IIS상태 - 그것은 다음에 의존한다 Windows 디버깅 도구 충돌이 발생할 때 실행되어야 하지만 설명하신 상황을 고려하면 문제가 되지 않습니다.

이를 위해 DebugDiag를 사용할 수도 있습니다.

여기에서 훌륭한 설명을 찾을 수 있습니다.

http://blogs.msdn.com/b/tess/archive/2009/03/20/debugging-a-net-crash-with-rules-in-debug-diag.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top