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

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

95469 次浏览

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

奇怪的是,医学文献中没有记载这一点,但我的证据来自:

  • 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应用程序池空闲超时设置

    布拉德 · 金斯利是 OrcsWeb 的创始人和首席执行官,他是一个相当知名、受人尊敬和信任的微软主机和黄金合作伙伴。

  • 此外,还有一个经验证明是,它“就是管用”。

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"
}