web-dev-qa-db-fra.com

Comment désactiver le délai d'inactivité du pool d'applications dans IIS7?

Sera-t-il désactivé si je règle le délai d'inactivité à 0?

143
123

Oui, la définition de la valeur du délai d'inactivité à zéro désactivera les délais d'inactivité.

Curieusement, cela n’est pas documenté dans la documentation MS, mais j’en témoigne:

  • Schéma des paramètres IIS

    Si vous examinez le schéma de paramètres IIS dans:

    C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml

    La définition du schéma pour idleTimeout sous

    <sectionSchema name="system.applicationHost/applicationPools">

    ça ressemble à:

    <attribute name="idleTimeout" 
           type="timeSpan" 
           defaultValue="00:20:00" 
           validationType="timeSpanRange" 
           validationParameter="0,2592000,60"/>
    

    Si vous regardez l’attribut validationParameter, nous voyons une plage de 0 à 2592000 secondes (le ,60 spécifie la granularité du paramètre, dans ce cas, la valeur doit être divisible par 60 [une minute]).

    Si vous voyez une valeur de départ admissible de 0, cela indique généralement que le réglage peut être désactivé.

  • paramètres de délai d'inactivité du pool d'applications IIS7

    Brad Kingsley est le fondateur et le PDG d’OrcsWeb, un hébergeur et partenaire Gold de Microsoft assez connu, respecté et digne de confiance.

  • Ensuite, il y a aussi la preuve empirique du fait que cela "fonctionne".

183
Kev

Très bonne réponse! merci Kev!

Une petite mise à jour: l'URL que vous avez publiée a été déplacée et elle est maintenant: http://bradkingsley.com/iis7-application-pool-idle-time-out-settings/

Je me demandais s'il y avait une raison pour que ce ne soit pas la valeur par défaut et si cela pourrait avoir un impact sur les performances si vous maintenez le pool d'applications ouvert trop longtemps. Bien le garder au ralenti quand il est inactif ne vous causera pas plus de problèmes que de ne pas le recycler quand il y a de la circulation et pas de temps d'inactivité. Si vous craignez des fuites de mémoire ou d’autres ressources, il existe un paramètre permettant de forcer le recyclage en fonction de la durée/du nombre de demandes depuis la dernière consommation de recyclage/mémoire. Voici la documentation pour cela:

http://technet.Microsoft.com/en-us/library/cc753179 (v = ws.10) .aspx

Je vais configurer mon serveur pour ne pas recycler au ralenti (idleTimeout = 0) et le recycler toutes les 24 heures: Recyclage> Intervalle de temps réglementaire = 1440

11
Shay Mandel
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" 
}
1
user6470603