Respuestas:
Sí, establecer el valor de tiempo de espera inactivo en cero deshabilitará los tiempos de espera inactivos.
Curiosamente, esto no está documentado en los documentos de MS, pero mi evidencia de esto surge de:
Esquema de configuración de IIS
Si echa un vistazo al esquema de configuración de IIS en:
C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml
La definición de esquema para idleTimeout
debajo
<sectionSchema name="system.applicationHost/applicationPools">
parece que:
<attribute name="idleTimeout"
type="timeSpan"
defaultValue="00:20:00"
validationType="timeSpanRange"
validationParameter="0,2592000,60"/>
Si observa el validationParameter
atributo, vemos un rango de 0 a 2592000 segundos ( ,60
especifica la granularidad de la configuración, en este caso el valor debe ser divisible por 60 [un minuto]).
Si ve un valor inicial admisible de 0
, eso generalmente indica que la configuración se puede deshabilitar.
Configuración del tiempo de espera de inactividad del grupo de aplicaciones IIS7
Brad Kingsley es el fundador y CEO de OrcsWeb, un proveedor de alojamiento de Microsoft y Gold Partner bastante conocido, respetado y confiable.
Luego también está la evidencia empírica del hecho de que "simplemente funciona".
¡Gran respuesta! gracias Kev!
Una pequeña actualización: la URL que publicó se ha movido y ahora está: http://bradkingsley.com/iis7-application-pool-idle-time-out-settings/
Me preguntaba si hay una razón por la cual este no es el valor predeterminado, y si puede haber un impacto en el rendimiento para mantener el grupo de aplicaciones abierto durante demasiado tiempo. Bueno, mantenerlo cuando está inactivo no le causará más problemas que no reciclarlo cuando hay tráfico y no hay tiempo de inactividad. Si le preocupan las pérdidas de memoria u otras pérdidas de recursos, existe una configuración para forzar el reciclaje en función del tiempo / número de solicitudes desde el último reciclaje / consumo de memoria. Aquí está la documentación para ello:
http://technet.microsoft.com/en-us/library/cc753179(v=ws.10).aspx
Voy a configurar mi servidor para que no se recicle en inactivo (idleTimeout = 0), y recicle cada 24 horas: Reciclaje> Intervalo de tiempo regular = 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"
}