如何在IIS7中禁用应用程序池空闲超时?

123*_*123 144 asp.net iis-7 application-pool

如果我将空闲超时设置为0,它会被禁用吗?

Kev*_*Kev 183

是,将空闲超时值设置为零将禁用空闲超时.

奇怪的是,MS文档中没有记录这一点,但我的证据来自于:

  • IIS设置架构

    如果您查看以下IIS设置架构:

    C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml

    该模式定义idleTimeout

    <sectionSchema name="system.applicationHost/applicationPools">

    看起来像:

    <attribute name="idleTimeout" 
           type="timeSpan" 
           defaultValue="00:20:00" 
           validationType="timeSpanRange" 
           validationParameter="0,2592000,60"/>
    
    Run Code Online (Sandbox Code Playgroud)

    如果查看validationParameter属性,我们会看到0到25​​92000秒的范围(,60指定设置的粒度,在这种情况下,值必须可以除以60 [1分钟]).

    如果您看到0当时的起始允许值,则通常表示可以禁用该设置.

  • IIS7应用程序池空闲超时设置

    Brad Kingsley是OrcsWeb的创始人兼首席执行官,他是一位相当知名,受人尊敬且值得信赖的微软托管商和金牌合作伙伴.

  • 然后还有经验证据表明它"正常".

  • 对其他人的抬头 - 在读完之后,我在IIS7上将我的空闲超时设置为0并立即开始超时 - 每个页面加载需要15秒左右.我现在把它提高到了600,而且一切都快得快了. (3认同)
  • 因为我发布了我正在使用的VPS有多个问题...很可能它在某种程度上是错误配置的.我只是试图在新的VPS上复制它,它的行为正常,如上所述. (3认同)
  • @ Zero3 - 嗯....在高流量站点上更改_any_设置之前,您应该始终在staging/QA环境中测试副作用等.此外,在您将更改应用于生产环境期间,您应该为面向公众的用户提供维护页面,直到更改生效为止.您需要管理这些更改,以免出现意外. (2认同)
  • @ Zero3 - 是的,更改了许多应用程序池设置需要重启进程才会生效,默认情况下会立即执行.您可以使用DisallowRotationOnConfigChange更改此设置 - 请参阅https://serverfault.com/questions/333907/what-should-i-do-to-make-sure-that-iis-does-not-recycle-my-application for a更多关于此. (2认同)

小智 11

很棒的答案!谢谢Kev!

一个小小的更新:您发布的网址已经移动,现在是:http: //bradkingsley.com/iis7-application-pool-idle-time-out-settings/

我想知道是否存在这不是默认值的原因,以及是否可能会对应用程序池保持打开时间过长而产生性能影响.好吧,当它处于空闲状态时保持它不会比没有流量和没有空闲时间时再循环使用更麻烦.如果您担心内存泄漏或其他资源泄漏,则会根据自上次回收/内存消耗以来的请求时间/数量强制进行回收.这是它的文档:

http://technet.microsoft.com/en-us/library/cc753179(v=ws.10).aspx

我要将我的服务器设置为空闲时无回收(idleTimeout = 0),并且每24小时回收一次:回收>常规时间间隔= 1440

  • 您可能最好建议将循环设置为固定时间(例如0100)而不是24小时,这将导致自上次服务器重启/ iis重置后24小时. (15认同)