如何继续分析 Windows 进程激活服务导致 w3wp.exe 线程崩溃的 IIS 7.5 调试诊断工具转储

如何继续分析 Windows 进程激活服务导致 w3wp.exe 线程崩溃的 IIS 7.5 调试诊断工具转储

我在一些生产 Windows Server 2008 R2 标准服务器上使用调试诊断工具(DebugDiag v1.2),这些服务器运行在 IIS 7.5 上内部构建的自定义 Web 应用程序来创建崩溃转储文件。

问题是 Windows 进程激活服务 (WAS) 警告事件不断发生在我的所有生产服务器上,并且频率在增加,但它们发生的时间仍然是随机的,在整个 24 小时内。

以下是我关注的一个系统日志事件示例:

级别:警告 来源:WAS 事件 ID:5011 描述:为应用程序池“MyAppPool”提供服务的进程与 Windows 进程激活服务发生致命通信错误。进程 ID 为“7776”。数据字段包含错误编号。

我分析转储,每次都会得到类似这样的结果(如下)。问题是,在遇到重复数百次的“0x3d9b9c16”行后,我该如何继续深入研究该问题?我可以使用哪些工具或方法来进一步调试?

线程 252 - 系统 ID 6380 入口点 0x00000000 创建时间 2015 年 3 月 25 日晚上 10:52:49 用户模式下所用时间 0 天 00:00:01.856 内核模式下所用时间 0 天 00:00:00.124

此线程被未处理的异常阻塞

.NET 调用堆栈

函数 System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr,System.Web.RequestNotificationStatus ByRef)

完整调用堆栈

函数来源 ntdll!ZwTerminateProcess
KERNELBASE!TerminateProcess+2c
clr!EEPolicy::HandleFatalStackOverflow+1ba
clr!EEPolicy::HandleStackOverflow+1ac
clr!COMPlusFrameHandler+9b
ntdll!ExecuteHandler2+26
ntdll!ExecuteHandler+24
ntdll!RtlDispatchException+127
ntdll!KiUserExceptionDispatcher+f
clr!COMNlsHashProvider::HashiStringKnownLower80+10
clr!COMNlsInfo::InternalGetCaseInsHash+fa
mscorlib_ni+2e7a9b
mscorlib_ni+2e7a0a
mscorlib_ni+38aba8
mscorlib_ni+2e1a10
mscorlib_ni+2e19cf
mscorlib_ni+2e18ce
System_ni+1a41b4
System_Web_ni+1c6785
System_Web_ni+1f3581
System_Web_ni+1c67f8
0x1b2bcc27
0x3d9b9c0e
0x3d9b9c16
0x3d9b9c16
0x3d9b9c16
0x3d9b9c16

...(这重复了数百行!)... 0x3d9b9c16
0x3d9b9c16
0x3d9b9c16
0x3d9b9c16
System_Web_ni+217774
System_Web_ni+1ea04d
System_Web_ni+1ea087
System_Web_ni+1ea0e2
System_Web_ni+1ea0e2
System_Web_ni+1ea0e2
System_Web_ni+1fd845
System_Web_ni+1fd3a5
System_Web_ni+1fd2d9
System_Web_ni+1fd216
System_Web_ni+1fc16b
System_Web_ni+2021f6
System_Web_ni+1df356
System_Web_ni+1f1277
System_Web_ni+1df5f0
System_Web_ni+1dc0cb
System_Web_ni+1e1561
System_Web_ni+1e126f
webengine4!W3_MGD_HANDLER::ProcessNotification+5a
webengine4!W3_MGD_HANDLER::DoWork+2cb
webengine4!RequestDoWork+2ea
webengine4!CMgdEngHttpModule::OnExecuteRequestHandler+18
iiscore!NOTIFICATION_CONTEXT::RequestDoWork+128
iiscore!NOTIFICATION_CONTEXT::CallModulesInternal+305
iiscore!NOTIFICATION_CONTEXT::CallModules+28
iiscore!W3_CONTEXT::DoStateRequestExecuteHandler+36
iiscore!W3_CONTEXT::DoWork+d7
iiscore!W3_MAIN_CONTEXT::ContinueNotificationLoop+1f
iiscore!W3_MAIN_CONTEXT::ProcessIndicateCompletion+1f
iiscore!W3_CONTEXT::IndicateCompletion+75
webengine4!W3_MGD_HANDLER::IndicateCompletion+38 webengine4!
MgdIndicateCompletion+22
System_Web_ni+240211
System_Web_ni+1e16e0
System_Web_ni+1e126f
clr!UM2MThunk_WrapperHelper+10
clr!UM2MThunk_Wrapper+76
clr!Thread::DoADCallBack+b4
clr!UM2MDoADCallBack+92
0x0098b361
webengine4!W3_MGD_HANDLER::ProcessNotification+5a
webengine4!ProcessNotificationCallback+32
clr!UnManagedPerAppDomainTPCount::DispatchWorkItem+1ce
clr!ThreadpoolMgr::ExecuteWorkRequest+42
clr!ThreadpoolMgr::WorkerThreadStart+36c
clr!线程::intermediateThreadProc+4d
kernel32!BaseThreadInitThunk+e
ntdll!__RtlUserThreadStart+70
ntdll!_RtlUserThreadStart+1b

谢谢!

相关内容