如何在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到2592000秒的范围(,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" }