我正在尝试禁用应用程序池回收并将应用程序池配置中的回收间隔更改为0.这是.config中的完整配置:
<add name="DefaultAppPool" autoStart="true" managedRuntimeVersion="v4.0">
<recycling logEventOnRecycle="Time, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory">
<periodicRestart time="00:00:00">
<schedule>
<clear />
</schedule>
</periodicRestart>
</recycling>
</add>
尽管该应用程序仍然每天都会被回收几次,这可以在事件日志中看到:
由于不活动而关闭了为应用程序池“DefaultAppPool”提供进程ID为“1584”的工作进程。应用程序池超时配置设置为20分钟。必要时将启动新的工作进程。
在使用IIS 7.5的Azure Windows 2008 R2 VM上会发生这种情况。 还有什么我需要做的才能使这个设置有效吗?
答案 0 :(得分:1)
IIS: Idle Timeout vs Recycle和其他人可能重复。
您正在寻找的是您将在applicationhost.config中的process model元素下找到的idleTimeout。除非你有一个强大的案例,否则我不建议禁用超时,因为它是在有问题的站点没有负载时释放未使用资源的主要机制。
如果它处于空闲状态并关闭,那么新进程被假脱机会产生非常小的开销,如果这确实是一个问题,那么我建议调查某种形式的持久缓存,例如应用程序请求路由提供的磁盘缓存IIS模块。