尽管配置,IIS 应用程序池每 20 分钟回收一次

Posted

技术标签:

【中文标题】尽管配置,IIS 应用程序池每 20 分钟回收一次【英文标题】:IIS application pool is recycled every 20 minutes despite configuration 【发布时间】:2014-09-21 04:16:42 【问题描述】:

我正在尝试禁用应用程序池回收并将应用程序池配置中的回收间隔更改为 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 上。 我还需要做什么才能使此设置生效吗?

【问题讨论】:

【参考方案1】:

IIS: Idle Timeout vs Recycle 和其他人的可能重复。

您正在寻找的是 idleTimeout,您可以在 applicationhost.config 中的进程模型元素下找到它。除非您有充分的理由,否则我不建议禁用超时,因为它是在相关站点未处于负载状态时释放未使用资源的主要机制。

如果它处于空闲状态并关闭,那么在新进程被假脱机时会有一个非常小的开销,如果这确实是一个问题,那么我建议调查某种形式的持久缓存,例如应用程序请求路由提供的磁盘缓存IIS 模块。

【讨论】:

以上是关于尽管配置,IIS 应用程序池每 20 分钟回收一次的主要内容,如果未能解决你的问题,请参考以下文章

解决IIS7IIS7.5 应用程序池回收假死的方法

IIS8.0 配置应用程序初始化功能

IIS8.0 配置应用程序初始化功能

Quartz定时任务和IIS程序池闲置超时时间冲突解决方案

解决IIS7IIS7.5 应用程序池回收假死的方法

解决IIS7IIS7.5 应用程序池回收假死的方法