IIS 6.0 挂起,然后应用程序池在大约 3 分钟后重置。这是一个 ASP 站点,重置后它可以正常运行几秒钟,然后挂起。此 IIS 6 实例上的所有其他应用程序池均正常运行。这台机器似乎没有任何性能问题。我使用 IIS 调试诊断进行了内存转储,这是呈现的分析。任何人都可以提供一些支持吗?
分析摘要类型描述建议警告在 w3wp.exe__SupportSiteAppPool__PID__3960__Date__07_23_2009__Time_02_22_36PM__551__Manual Dump.dmp 中的线程 24 拥有的 ntdll!LdrpLoaderLock 检测到可能的阻塞或泄漏临界区
这个锁的影响
66.67% 的执行 ASP 请求被阻止
22.58% 的线程被阻塞
(线程 6 22 23 27 28 29 30)
以下函数试图进入这个关键部分
ntdll!LdrLockLoaderLock+133
ntdll!LdrpGetProcedureAddress+128
ntdll!LdrpInitializeThread+68
此关键部分涉及以下模块
来自 Microsoft Corporation 的 C:\WINDOWS\system32\ntdll.dll 动态链接库 (DLL) 的入口点函数应该只执行简单的初始化或终止任务,但是该线程 (24) 正在使用 LoadLibrary API 加载 dll。遵循 DllMain 的 MSDN 文档中的指南,以避免在加载和卸载库时出现访问冲突和死锁。
请跟进供应商 Microsoft Corporation for C:\WINDOWS\system32\mscoree.dll 警告在 w3wp.exe__SupportSiteAppPool__PID__3960__Date__07_23_2009__Time_02_22_36PM__551__Manual Dump.dmp 中的线程 8 拥有的 asp!g_ViperReqMgr+2c 检测到可能的阻塞或泄漏临界区
这个锁的影响
6.45% 的线程被阻塞
(线程 7 9)
以下函数试图进入这个关键部分
asp!CViperActivity::PostAsyncRequest+72
此关键部分涉及以下模块
\?\C:\WINDOWS\system32\inetsrv\asp.dll 来自 Microsoft Corporation 根据根本原因分析确定了以下供应商进行跟进
微软公司
请跟进上述供应商 考虑以下方法来确定此关键部分问题的根本原因: 在应用程序验证程序中启用“锁定检查” 从以下 URL 下载应用程序验证程序:
Microsoft Application Verifier 通过运行以下命令为此进程启用“锁定检查”:
Appverif.exe -enable locks -for w3wp.exe 有关应用程序验证程序的详细信息,请参阅以下文档:
使用 AppVerifier 测试应用程序 使用 DebugDiag 崩溃规则来监控应用程序的异常情况