自 6 月 19 日起,我们遇到了应用程序池工作进程无法解释且不希望的回收。应用程序池计划在凌晨 3 点回收。但自 6 月 19 日起,我们在凌晨 5 点至 5:30 之间遇到了额外的无法解释的每日回收。我们尚未找到原因或触发因素。在 IIS 管理设置、事件日志或任务计划程序中均未找到。
幸运的是,我们确实有一个回收的调用堆栈,由 IIS 管理员通过电子邮件发送:
Current StackTrace (max 30 frames deep):
0. ezWeb.Global_asax.Application_End()
1. System.RuntimeMethodHandle.InvokeMethod()
2. System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal()
3. System.Reflection.RuntimeMethodInfo.Invoke()
4. System.Reflection.MethodBase.Invoke()
5. System.Web.HttpApplication.InvokeMethodWithAssert()
6. System.Web.HttpApplication.ProcessSpecialRequest()
7. System.Web.HttpApplicationFactory.FireApplicationOnEnd()
8. System.Web.HttpApplicationFactory.Dispose()
9. System.Web.HttpRuntime.Dispose()
10. System.Web.HttpRuntime.ReleaseResourcesAndUnloadAppDomain()
11. System.Threading.ExecutionContext.RunInternal()
12. System.Threading.ExecutionContext.Run()
13. System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
14. System.Threading.ThreadPoolWorkQueue.Dispatch()
我们应该在哪里进一步寻找这次循环的原因和触发因素?
答案1
原来是卡巴斯基杀毒软件。经过深入研究和与他们的电子邮件支持交流后,很明显,每天清晨的文件系统扫描都在以一种非常模糊的方式“触碰” ASP.Net bin 目录中的文件(更改和恢复文件日期)。请参阅此卡巴斯基支持帖子:
他们提供了解决方案。