我试图禁用应用程序池回收并将应用程序池配置中的回收间隔更改为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分钟。当需要时,将启动一个新的工作进程。
这发生在Azure Windows 2008 R2虚拟机与IIS 7.5。我还需要做些什么来使这个设置生效吗?
可能重复IIS: Idle Timeout vs Recycle等。
您要查找的是idleTimeout,您将在applicationhost.config中的流程模型元素下找到它。除非你有足够的理由,否则我不建议你禁用超时,因为它是在站点没有负载时释放未使用资源的主要机制。
如果它是空闲的,然后关闭,那么有一个非常小的开销,因为新进程是假假的,如果这真的是一个问题,那么我建议研究一些形式的持久化缓存,如应用请求路由IIS模块提供的磁盘缓存。