'DefaultAppPool' suffered a fatal communication error with the World Wide Web Publishing Service
I am getting Event Log entries every time I access the site:
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 ..\
System Logs
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开发者_StackOverflow) serving that application pool.
Application Log
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..
I have also followed the advice of Microsoft's Support site without luck. The Network Service account didn't have any problems accessing the registry.
I need to run the site in IIS6 (instead of IIS Express 7.5) as the site runs ASP as well as ASP.NET I need the wildcard mapping for authentication in ASP.
I have completely run out of ideas, as the site was fine in ASP.NET 3.5 (CLR v2...), but this upgrade has completely messed up by debugging.
Any help will be much appreciated.
You will need WinDbg (Debugging Tools for Windows) and DebugDiag.
- Install DebugDiag and WinDbg
- Ensure you have copied the related framework's SOS.dll to the WinDbg directory.
- Add a rule to catch IIS/COM+ processes
- On first exceptions, create a full user dump. Limit of 10
- Open the website and look at look at DebugDiag, you should find it starting to take full dumps.
- Once you have a few memory dumps, load WinDbg and click File->Open Crash Dump and load one of the memory dump.
- Type
.load sos
- Type
!clrstack
- You will get a stack trace of the error like:
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]
For me anyway, you can see that the Debugger.Launch()
is right at the top, and low and behold, my code had it in. It seems that IIS doesn't like that at all if it is your first line of code!
If you are not familiar with WinDbg, you can still extract a lot of information from the dumps. You already have dumps created by DebugDiag. Launch VS, File -> Open -> File (Ctrl + O), select the .dmp file. VS2010 will than display couple of options to debug -- Mixed mode or Native Only. Choose Mixed mode, open threads window, identify thread that threw exception, look at the call stack. Sometimes you get to local variables for the thread, but don't count on that too much, as data might not be correct.
精彩评论