Reciclaje
Por lo general, el reciclaje es * donde IIS inicia un nuevo proceso como contenedor para su aplicación, y luego entrega el anterior a ShutdownTimeLimit para que se vaya por su propia voluntad antes de que se elimine.
* - por lo general: consulte la configuración DisallowOverlappingRotation / "Desactivar reciclaje superpuesto"
Es destructivo , ya que el proceso original y toda su información de estado se descartan. El uso del estado de sesión fuera de proceso (por ejemplo, Servidor de estado o una base de datos, o incluso una cookie si su estado es pequeño) puede permitirle solucionar esto.
Pero, por defecto, se superpone , lo que significa que la duración de una interrupción se minimiza porque el nuevo proceso se inicia y se conecta a la cola de solicitudes, antes de que se le diga al anterior "tiene [ShutdownTimeLimit] segundos para desaparecer. Por favor, cumpla".
Configuraciones
A su pregunta: todas las configuraciones en esa página controlan el reciclaje de alguna manera. El "apagado" podría describirse como "reciclaje proactivo", donde el proceso en sí mismo decide que es hora de irse y sale de manera ordenada.
El reciclaje reactivo es donde WAS detecta un problema y dispara el proceso (después de establecer un W3WP de reemplazo adecuado).
Ahora, aquí hay algunas cosas que pueden causar el reciclaje de una forma u otra:
- un ISAPI que decide que no es saludable
- cualquier módulo se bloquea
- tiempo de inactividad
- limitación de la CPU
- ajustar las propiedades del grupo de aplicaciones
- como su madre pudo haber gritado en un momento: "¡Deja de molestarlo , o nunca mejorará!"
- Falla de "ping" * en realidad no hace ping por sí, porque usa una tubería con nombre - más "detección de vida"
- todas las configuraciones en la captura de pantalla anterior
Qué hacer:
Generalmente:
Deshabilitar tiempos de espera inactivos . 20 minutos de inactividad = ¡boom! Nuevo proceso en la próxima solicitud entrante. Ponlo a cero.
Desactivar Intervalo de tiempo regular : el valor predeterminado de 29 horas ha sido descrito como "loco", "molesto" e "inteligente" por varias partes. En realidad, solo dos de ellos son ciertos.
Opcionalmente Encienda DisallowRotationOnConfigChange (arriba, Desactivar Reycling cambios de configuración ) si usted no puede dejar de jugar con él - esto le permite cambiar cualquier configuración de grupo de aplicación, sin que al instante de señalización para el trabajador procesos que hay que matar. Debe reciclar manualmente el grupo de aplicaciones para que la configuración surta efecto, lo que le permite preestablecer la configuración y luego usar una ventana de cambio para aplicarla a través de su proceso de reciclaje.
Como principio general, deje el ping activado . Esa es tu red de seguridad. He visto a personas apagarlo, y luego el sitio se cuelga indefinidamente a veces, lo que lleva al pánico ... así que si la configuración es demasiado agresiva para su aplicación aparentemente muy, muy lenta para responder, retroceda un poco y mira lo que obtienes, en lugar de apagarlo. (A menos que tenga configurado el volcado en modo de bloqueo automático para W3WP colgados a través de su propio proceso de monitoreo)
Eso es suficiente para que un proceso de buen comportamiento viva para siempre. Si muere, seguro, será reemplazado. Si se cuelga, ping que debe escoger y un nuevo uno debe comenzar dentro de 2 minutos (por defecto; peor de los casos debería ser Calc: hasta la frecuencia de ping + de ping tiempo de espera + límite de tiempo de inicio antes de peticiones de empezar a trabajar otra vez).
La limitación de CPU no suele ser interesante, porque de forma predeterminada está desactivada y, de todos modos, también está configurada para no hacer nada; si estuviera configurado para matar el proceso, seguro, eso sería un desencadenante de reciclaje. Déjalo apagado. Nota para IIS 8.x, la aceleración de la CPU también se convierte en una opción.
Un AppPool (IIS) no es un (.Net) AppDomain (pero puede contener uno / algunos)
Pero ... luego nos metemos en tierra .Net y en el reciclaje de AppDomain, que también puede causar una pérdida de estado. (Ver: https://blogs.msdn.microsoft.com/tess/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles/ )
Versión corta, que hace que al tocar un archivo web.config en la carpeta de contenido (de nuevo con la cosecha!), O mediante la creación de una carpeta en la carpeta, o un archivo ASPX, o .. otras cosas ... y eso es acerca tan destructivo como el reciclaje de un grupo de aplicaciones, menos los costos de inicio del código nativo (es puramente un concepto de código administrado (.Net), por lo que aquí solo sucede el código administrado).
El antivirus también puede activar esto ya que escanea archivos web.config, provocando una notificación de cambio, causando ...