IIS 6挂起,然后应用程序池重置。 IIS调试Diag Dump附加

时间:2009-07-23 18:31:14

标签: iis asp-classic hang

IIS 6.0挂起,然后大约3分钟后应用程序池重置。这是一个ASP站点,重置后它可以运行几秒钟,然后挂起。此实例的IIS 6上的所有其他应用程序池正常运行。此计算机似乎没有任何性能问题。我使用IIS Debug Diagnostics进行了内存转储,这是渲染分析。有人可以请一些支持吗?

  

分析摘要类型说明建议警告   检测到可能阻塞或泄漏的关键部分   ntdll!LdrpLoaderLock由24号线程拥有   w3wp.exe__SupportSiteAppPool__PID__3960__Date__07_23_2009__Time_02_22_36PM__551__Manual   Dump.dmp

     

此锁的影响

     

执行ASP请求的66.67%被阻止

     

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   C:\ WINDOWS \ SYSTEM32 \ mscoree.dll中       警告在线程8中拥有的asp!g_ViperReqMgr + 2c中检测到可能阻塞或泄漏的关键部分   w3wp.exe__SupportSiteAppPool__PID__3960__Date__07_23_2009__Time_02_22_36PM__551__Manual   Dump.dmp

     

此锁的影响

     

6.45%的线程被阻止

     

(主题7 9)

     

以下功能正在尝试进入此关键部分

     

ASP!CViperActivity :: PostAsyncRequest + 72

     

以下模块涉及此关键部分

     来自Microsoft Corporation的

\?\ C:\ WINDOWS \ system32 \ inetsrv \ asp.dll   确定了以下供应商,以便根据root进行跟进   原因分析

     

Microsoft Corporation

     

请跟进上面提到的供应商考虑一下   以下方法确定此关键部分的根本原因   问题:在Application Verifier下载中启用“锁定检查”   来自以下URL的Application Verifier:

     

Microsoft Application Verifier通过运行以下命令为此进程启用“锁定检查”:

     

Appverif.exe -enable locks -for w3wp.exe有关Application Verifier的更多信息,请参阅以下文档:

     

使用AppVerifier测试应用程序使用DebugDiag崩溃规则来监视应用程序的异常

4 个答案:

答案 0 :(得分:1)

您的ASP Classic App失败,因为所有线程都被阻止。我建议在Web服务器上运行Process Monitor以查看在哪里处理了哪些句柄。我没有看到堆栈跟踪中有很多重复,表明特定dll存在问题。

答案 1 :(得分:0)

鉴于提供的信息,它听起来像应用程序本身而不是IIS的问题。您是否确定没有任何疯狂的紧密循环或过多/极其繁重的数据库负载,可能是一些PInvoke调用或者只是一些异常的webapp会杀死应用程序/运行时并导致池死亡?​​

答案 2 :(得分:0)

我认为你应该尝试一些工具,比如fiddler和其他东西。你可以确切知道什么是花时间加载你的网站。从日志中可以看出应用程序本身存在问题。因此,不要使用过多的循环,从db缓存数据并使用,也不要在会话或应用程序中存储大对象。

答案 3 :(得分:0)

我希望你不要只发布你的生产密码兄弟:)。

我同意Quintin,似乎ADO提供商中的某些东西导致了失败。