3

와의 심각한 통신 오류가 나는 사이트에 액세스 할 때마다 엔트리 :'을 DefaultAppPool가'나는 이벤트 로그를 얻고 World Wide Web 게시 서비스

 
Event Type: Error 
Event Source: VsJITDebugger 
Event Category: None 
Event ID: 4096 
User:  NT AUTHORITY\NETWORK SERVICE 
Computer: COMPUTER-02 
Description: 
An unhandled Microsoft .NET Framework exception occurred in w3wp.exe [2908]. Just-In-Time debugging this exception failed with the following error: Debugger could not be started because no user is logged on. 

Check the documentation index for 'Just-in-time debugging, errors' for more information. 

Data: 
0000: 02 00 5c 80    ..\  

시스템 로그를

 
Event Type: Error 
Event Source: W3SVC 
Event Category: None 
Event ID: 1002 
Date:  28/03/2011 
Time:  17:49:28 
User:  N/A 
Computer: COMPUTER-02 
Description: 
Application pool 'DefaultAppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool. 

응용 프로그램 로그

 
Event Type: Warning 
Event Source: W3SVC 
Event Category: None 
Event ID: 1011 
Date:  28/03/2011 
Time:  17:49:28 
User:  N/A 
Computer: COMPUTER-02 
Description: 
A process serving application pool 'DefaultAppPool' suffered a fatal communication error with the World Wide Web Publishing Service. The process id was '3724'. The data field contains the error number. 

Data: 
0000: 6d 00 07 80    m..  

나는 또한 행운없이 Microsoft's Support site의 충고를 따랐다. 네트워크 서비스 계정은 레지스트리에 액세스하는 데 아무런 문제가 없었습니다.

사이트가 ASP와 ASP.NET을 실행하므로 IIS6 (IIS Express 7.5 대신)에서 사이트를 실행해야합니다. ASP에서 인증을 위해 와일드 카드 매핑이 필요합니다.

사이트가 ASP.NET 3.5 (CLR v2 ...)에서 잘 작동 했으므로 아이디어가 완전히 소진되었습니다.하지만이 업그레이드는 완전히 디버깅으로 엉망이되었습니다.

도움이 될 것입니다.

답변

2

WinDbg (Windows 용 디버깅 도구) 및 DebugDiag가 필요합니다.

  1. 당신은 WinDbg를 디렉토리에 관련 프레임 워크의 SOS.dll을 복사했는지 확인 DebugDiag와 WinDbg는
  2. 를 설치합니다.
  3. IIS/COM + 프로세스를 잡기위한 규칙 추가
  4. 첫 번째 예외에서 전체 사용자 덤프를 만듭니다. Limit of 10
  5. 웹 사이트를 열고 DebugDiag를 살펴보면 전체 덤프를 시작하는 것을 발견해야합니다.
  6. 일단 메모리 덤프가 있으면 WinDbg을로드하고 파일 -> 크래시 덤프 열기를 클릭하고 메모리 덤프 중 하나를로드하십시오.
  7. 유형 .load sos
  8. 유형 !clrstack 당신이 좋아하는 오류의 스택 추적을 얻을 것이다
  9. : 당신의 Debugger.Launch() 오른쪽 상단에 있음을 알 수 어쨌든 나를 위해
 
0:016> .load sos 
0:016> !clrstack 
PDB symbol for clr.dll not loaded 
OS Thread Id: 0xa60 (16) 
Child SP IP  Call Site 
01d2eb5c 7c81a251 [HelperMethodFrame: 01d2eb5c] System.Diagnostics.Debugger.LaunchInternal() 
01d2ebac 7a0e0166 System.Diagnostics.Debugger.Launch()*** WARNING: Unable to verify checksum for mscorlib.ni.dll 
*** ERROR: Module load completed but symbols could not be loaded for mscorlib.ni.dll 

01d2ebd8 04470176 ebiz.Global.Application_Start(System.Object, System.EventArgs) 
01d2f1f8 791421bb [DebuggerU2MCatchHandlerFrame: 01d2f1f8] 
01d2f1c4 791421bb [CustomGCFrame: 01d2f1c4] 
01d2f198 791421bb [GCFrame: 01d2f198] 
01d2f17c 791421bb [GCFrame: 01d2f17c] 
01d2f3a0 791421bb [HelperMethodFrame_PROTECTOBJ: 01d2f3a0] System.RuntimeMethodHandle._InvokeMethodFast(System.IRuntimeMethodInfo, System.Object, System.Object[], System.SignatureStruct ByRef, System.Reflection.MethodAttributes, System.RuntimeType) 
01d2f41c 79b3d689 System.RuntimeMethodHandle.InvokeMethodFast(System.IRuntimeMethodInfo, System.Object, System.Object[], System.Signature, System.Reflection.MethodAttributes, System.RuntimeType) 
01d2f470 79b3d37c System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo, Boolean) 
01d2f4ac 79b3bfed System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo) 
01d2f4d0 79b43284 System.Reflection.MethodBase.Invoke(System.Object, System.Object[]) 
01d2f4dc 67894f4d System.Web.HttpApplication.InvokeMethodWithAssert(System.Reflection.MethodInfo, Int32, System.Object, System.EventArgs)*** WARNING: Unable to verify checksum for System.Web.ni.dll 
*** ERROR: Module load completed but symbols could not be loaded for System.Web.ni.dll 

01d2f500 678951cb System.Web.HttpApplication.ProcessSpecialRequest(System.Web.HttpContext, System.Reflection.MethodInfo, Int32, System.Object, System.EventArgs, System.Web.SessionState.HttpSessionState) 
01d2f550 67b34175 System.Web.HttpApplicationFactory.FireApplicationOnStart(System.Web.HttpContext) 
01d2f564 672bfe1c System.Web.HttpApplicationFactory.EnsureAppStartCalled(System.Web.HttpContext) 
01d2f59c 672bfd3d System.Web.HttpApplicationFactory.GetApplicationInstance(System.Web.HttpContext) 
01d2f5ac 672fbf28 System.Web.HttpRuntime.ProcessRequestInternal(System.Web.HttpWorkerRequest) 
01d2f5e0 672fbccd System.Web.HttpRuntime.ProcessRequestNoDemand(System.Web.HttpWorkerRequest) 
01d2f5f0 672fb2cd System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr, Int32) 
01d2f5f4 6791c30c [InlinedCallFrame: 01d2f5f4] 
01d2f668 6791c30c DomainNeutralILStubClass.IL_STUB_COMtoCLR(Int32, Int32, IntPtr) 
01d2f7fc 791425a1 [GCFrame: 01d2f7fc] 
01d2f86c 791425a1 [ContextTransitionFrame: 01d2f86c] 
01d2f8a0 791425a1 [GCFrame: 01d2f8a0] 
01d2f9f8 791425a1 [ComMethodFrame: 01d2f9f8] 

및 낮은 그리고 보라, 내 코드가 들어있다. 그것은 코드가 첫 번째 코드 라인이라면 IIS가 그렇게 좋아하지 않는 것 같다.

0

WinDbg에 익숙하지 않은 사용자는 덤프에서 많은 정보를 추출 할 수 있습니다. 이미 DebugDiag에서 만든 덤프가 있습니다. VS, 파일 -> 열기 -> 파일 (Ctrl + O)을 실행하여 .dmp 파일을 선택하십시오. VS2010은 디버깅 옵션 몇 가지를 표시합니다 - 혼합 모드 또는 기본 전용. 혼합 모드를 선택하고, 스레드 창을 열고, 예외를 발생시킨 스레드를 식별하고, 호출 스택을 살펴보십시오. 때로는 스레드의 로컬 변수에 도달하지만 데이터가 올바르지 않을 수 있으므로 너무 많이 계산하지 마십시오.

관련 문제