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

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

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

奇怪这没有logging在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"/> 

    如果您查看validationParameter属性,我们可以看到0到25​​92000秒的范围( ,60代表设置的粒度,在这种情况下,该值必须可以被60 [1分钟]整除)。

    如果您看到起始允许值为0则通常表示可以禁用该设置。

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

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

  • 那么还有一个事实的经validation据表明它“正常工作”。

很好的回答! 谢谢Kev!

一个小小的更新:您发布的url已经移动,现在是: 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

 Import-Module WebAdministration $pools = Get-ChildItem iis:\apppools foreach ($pool in $pools) { $poolname = $pool.Name Set-ItemProperty IIS:\AppPools\$poolname -name processModel -value @{idletimeout="20"} Set-ItemProperty IIS:\AppPools\$poolname -name processModel -value @{idletimeoutaction="Suspend"} set-ItemProperty IIS:\AppPools\$poolname -Name Recycling.periodicRestart -Value @{time="0"} set-ItemProperty IIS:\AppPools\$poolname -Name Recycling.periodicRestart.schedule -Value @{value="02:00:00"} Set-ItemProperty IIS:\AppPools\$poolname -name Recycling -value @{logEventOnRecycle="Time, Requests, Schedule, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory"} Write-Host "Updated $poolname settings" }