Відповіді:
Так, встановлення значення тайм-ауту очікування в нулі призведе до відключення часу очікування.
Як не дивно, це не зафіксовано в документах 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 [одну хвилину]).
Якщо ви бачите початкове допустиме значення, 0
яке зазвичай вказує, налаштування можна відключити.
Бред Кінгслі є засновником і генеральним директором OrcsWeb, які є досить відомими, шанованими та надійними хостерами Microsoft та Gold Partner.
Потім є також емпіричні докази того, що це "просто працює".
Чудова відповідь! дякую Кеву!
Невелике оновлення: 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"
}