PreApplicationStartMethodAttribute에 연결된 초기화 프로그램이있는 ASP.NET MVC 응용 프로그램을 만들었습니다. 초기화 할 때 정의한 인터페이스를 구현하는 컬렉션이 인스턴스화됩니다.컬렉션을 초기화 할 때 W3WP가 충돌합니다.
Fault bucket , type 0
Event Name: APPCRASH
Response: Not available
Cab Id: 0
Problem signature:
P1: w3wp.exe
P2: 7.5.7600.16385
P3: 4a5bd0eb
P4: clr.dll
P5: 4.0.30319.1
P6: 4ba21eeb
P7: c00000fd
P8: 0000000000001177
P9:
P10:
Attached files:
These files may be available here:
Analysis symbol:
Rechecking for solution: 0
Report Id: c6a0941e-6e17-11df-864d-000acd16dcdb
Report Status: 0
내가 컬렉션의 인스턴스를 제거하는 경우는, 응용 프로그램이 정상적으로 시작 :
Faulting application name: w3wp.exe, version: 7.5.7600.16385, time stamp: 0x4a5bd0eb
Faulting module name: clr.dll, version: 4.0.30319.1, time stamp: 0x4ba21eeb
Exception code: 0xc00000fd
Fault offset: 0x0000000000001177
Faulting process id: 0x1348
Faulting application start time: 0x01cb0224882f4723
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Report Id: c6a0941e-6e17-11df-864d-000acd16dcdb
그리고 : 나는이 컬렉션을 인스턴스화 할 때, W3wp.exe를 이벤트 로그에 다음과 같은 두 가지 이해할 수없는 항목이 충돌 . 인스턴스화를 종료하면 w3wp가 충돌합니다. 인터페이스를 수정하면 w3wp가 여전히 충돌합니다. 나는 인스턴스화를 유지하면서 다른 모든 것을 다르게하는 것을 주제로 모든 변형을 시도했지만 w3wp는 여전히 충돌합니다.
여기서 가장 큰 문제는 왜 w3wp가 충돌하는지 전혀 알 수 없다는 것입니다. 그것은 StackOverflowException이나 그와 같은 구체적인 것이 아닙니다. 위에서 언급 한 unintelligent junk가 있습니다.
내가 W3WP 프로세스를 디버깅 할 DebugDiag 및 IISState을 사용하려했지만, DebugDiag는 64 년 후 덤프 분석에만 사용할 수 있습니다 (I 윈도우 7의 x64에서 실행 해요, 그래서 W3WP 프로세스가 64 비트 때문에입니다) 그리고 IISStat 내가 그것을 실행하려고하면 다음 말한다 :
D:\Programs\iisstate>IISState.exe -p 9204 -d
Symbol search path is: SRV*D:\Programs\iisstate\symbols*http://msdl.microsoft.com/download/symbols
IISState is limited to processes associated with IIS.
If you require a generic debugger, please use WinDBG or CDB.
They are available for download from http://www.microsoft.com/ddk/debugging.
This error may also occur if a debugger is already attached to the process
being checked.
Incorrect Process Attachment
내 W3WP 프로세스의 프로세스 ID가 올바른지 더블 점검 10 배를했습니다. 나는 IISState가 x86 프로세스를 디버그 할 수 있을지 의심 스럽다. 응용 프로그램에서 아무 곳이나 중단 점을 설정하는 것은 아무 것도하지 않습니다. 요청이 브라우저에서 IIS로 전달되는 즉시 중단 점이 적중되지 않고 w3wp가 중단됩니다. Visual Studio 2010에서 F5를 사용하여 응용 프로그램을 시작하거나 다른 응용 프로그램을 시작하여 w3wp 프로세스를 시작한 다음 VS2010 디버거를 연결 한 다음 오류 응용 프로그램을 방문하면 도움이되지 않습니다.
나는 또한뿐만 아니라 내 web.config
파일이 추가로 KB-911816에 설명 된대로 HTTP 모듈을 추가하는 시도하지했습니다 말할
<configuration>
<runtime>
<legacyUnhandledExceptionPolicy enabled="true" />
</runtime>
</configuration>
도없이, 그것은하게 전혀 차이를. 그래서 w3wp 프로세스를 디버깅 할 방법이없고, 어떤 정보도 추출 할 수 없으며, 이벤트 로그에 덤프 된 가비지를 완료 할 수 없습니다. 아무도이 문제를 디버깅하는 방법에 대한 아이디어가 있다면 알려 주시기 바랍니다!