如果我将空闲超时设置为0,它是否会被禁用?
是的,将空闲超时值设置为零将禁用空闲超时。
奇怪的是,医学文献中没有记载这一点,但我的证据来自:
IIS 设置架构
中查看 IIS 设置架构:
C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml
下的 idleTimeout的架构定义
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分钟]整除)。
validationParameter
,60
如果您看到 0的起始允许值,那么这通常表明设置可以被禁用。
0
IIS7应用程序池空闲超时设置
布拉德 · 金斯利是 OrcsWeb 的创始人和首席执行官,他是一个相当知名、受人尊敬和信任的微软主机和黄金合作伙伴。
此外,还有一个经验证明是,它“就是管用”。
答得好! 谢谢 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
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" }