我有一个应用程序池,默认情况下每 29 小时回收一次。它 10 次中有 9 次都能顺利回收,而且我非常确定回收本身对应用程序有好处。每隔几周回收一次就不起作用了。旧的工作进程干净地终止,新的工作进程启动,但不会提供内容。手动再次回收应用程序池非常有效。失败的工作进程停止并干净地终止,第二个新的工作进程启动并完美地提供内容。
在回收失败的工作进程之前,我对其进行了崩溃转储,DebugDiag 没有发现任何问题。我尝试使用 WinDBG 进行更深入的挖掘,但新进程启动 15 分钟后,mscorsvr/mscorwks 尚未加载。有 14 个线程正在运行(4 个异步)和 20 个待处理的客户端连接,但 .NET 甚至尚未加载到进程中。
有什么建议可以找到这个问题的根本原因吗?
答案1
嗯。一年多后,我相信这是 ISAPI 过滤器加载问题。如果我没记错的话,一个程序是在应用程序池回收之前启动 ProcMon,看看是什么原因导致 ISAPI 加载失败。