Antworten:
Ja, wenn Sie den Wert für das Leerlaufzeitlimit auf Null setzen, werden Leerlaufzeitlimits deaktiviert.
Seltsamerweise ist dies nicht in den MS-Dokumenten dokumentiert, aber meine Beweise dafür ergeben sich aus:
IIS-Einstellungsschema
Wenn Sie sich das IIS-Einstellungsschema ansehen in:
C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml
Die Schemadefinition für idleTimeout
unter
<sectionSchema name="system.applicationHost/applicationPools">
es sieht aus wie:
<attribute name="idleTimeout"
type="timeSpan"
defaultValue="00:20:00"
validationType="timeSpanRange"
validationParameter="0,2592000,60"/>
Wenn Sie sich das validationParameter
Attribut ansehen, sehen Sie einen Bereich von 0 bis 2592000 Sekunden (dies ,60
gibt die Granularität der Einstellung an, in diesem Fall muss der Wert durch 60 [eine Minute] teilbar sein).
Wenn Sie einen zulässigen Startwert von sehen 0
, bedeutet dies normalerweise, dass die Einstellung deaktiviert werden kann.
Timeout-Einstellungen für den Leerlauf des IIS7-Anwendungspools
Brad Kingsley ist der Gründer und CEO von OrcsWeb, einem ziemlich bekannten, angesehenen und vertrauenswürdigen Microsoft-Hoster und Gold-Partner.
Dann gibt es auch den empirischen Beweis dafür, dass es "einfach funktioniert".
Gute Antwort! danke Kev!
Ein kleines Update: Die von Ihnen gepostete URL wurde verschoben und lautet jetzt: http://bradkingsley.com/iis7-application-pool-idle-time-out-settings/
Ich habe mich gefragt, ob es einen Grund gibt, warum dies nicht die Standardeinstellung ist, und ob es möglicherweise Auswirkungen auf die Leistung hat, wenn der Anwendungspool zu lange geöffnet bleibt. Wenn Sie im Leerlauf weitermachen, werden Sie nicht mehr Probleme haben, als wenn Sie es nicht recyceln, wenn Verkehr herrscht und keine Leerlaufzeit herrscht. Wenn Sie sich Sorgen über Speicherlecks oder andere Ressourcenlecks machen, gibt es eine Einstellung zum Erzwingen des Recyclings basierend auf der Zeit / Anzahl der Anforderungen seit dem letzten Recycling / Speicherverbrauch. Hier ist die Dokumentation dafür:
http://technet.microsoft.com/en-us/library/cc753179(v=ws.10).aspx
Ich werde meinen Server so einstellen, dass er im Leerlauf nicht recycelt wird (idleTimeout = 0), und alle 24 Stunden recyceln: Recycling> Normales Zeitintervall = 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"
}