IIS应用程序池每隔几秒随机回收一次

Mit*_*uyn 5 iis application-end

我需要确定为什么应用程序池正在回收.(没有明显原因)

有没有办法在global.asax文件中确定application_end子的内部?

我已经在那里放了一些基本的日志记录,所以我知道当它关闭时,但我不知道为什么.

(并没有什么明显的......似乎每一个请求某些操作导致应用程序结束.我已经关闭了回收的所有正常原因,如超时,内存检查等等.相同的代码是在不同的服务器上正常工作,所以我确定这个设置有问题,但是什么?...)

ami*_*mit 6

您不必承担添加自定义日志记录的开销,ASP.NET 2.0 运行状况监控会为您完成这项工作。您可以添加以下配置,该配置将在事件日志中记录事件,并提供重新启动应用程序池的信息。

要打开 ASP.NET 运行状况监控,您可以编辑“主”web.config文件,该文件通常位于%systemroot%\microsoft.net\framework\v2.0.50727\config.

  • <healthMonitoring>首先在master中寻找web.config

  • 在节点内部healthMonitoring,找到该<rules>节点

  • 在规则内添加以下内容:

    <add name="Application Lifetime Events Default"       
         eventName="Application Lifetime Events"       
         provider="EventLogProvider"       
         profile="Default"       
         minInstances="1"       
         maxLimit="Infinite"       
         minInterval="00:01:00"       
         custom="" /> 
    
    Run Code Online (Sandbox Code Playgroud)

重现该问题并在应用程序事件日志中查找 ASP.NET 2.0 的源。这应该记录应用程序池被回收的原因。