2009-04-17 14 views
50

Tengo un problema con los tiempos de espera en IIS. En web.config, el tiempo de espera de la sesión se estableció en 60 minutos, pero después de 20 minutos la sesión finaliza.¿Cuál es la diferencia entre DefaultAppPool y Classic .NET AppPool en IIS7?

Este problema solo ocurre en IIS7 y no en IIS5.

Después de algunas investigaciones, descubrí que se debía al tiempo de espera del grupo de aplicaciones. Si el grupo de aplicaciones se queda 20 minutos sin hacer nada, IIS finaliza la sesión.

Si la aplicación usa la Pool de aplicaciones predeterminada, esto siempre sucede, pero si cambio el grupo de aplicaciones al grupo de aplicaciones .NET clásico, el tiempo de espera no se produce.

Ambos modos tienen tiempo de espera inactivo pero solo en DefaultAppPool esto ocurre.

  • ¿Por qué es esto?
  • ¿Cuál es la diferencia entre ser un Classic .NET AppPool y DefaultAppPool?
  • ¿Cuál es la diferencia en la tubería, entre Classic e Integrated?

Respuesta

4

El grupo clásico procesa las solicitudes en el grupo de aplicaciones utilizando las tuberías de procesamiento independientes para IIS e ISAPI. Integrated utiliza un pipeline integrado, IIS y ASP.NET a (mejor rendimiento) aprovecha las características mejoradas de IIS 7.0 utilizando solo un proceso. Una buena práctica es crear un nuevo grupo de aplicaciones para cada aplicación, luego configurar separadamente según los requisitos de la aplicación.


modo clásico sigue los siguientes pasos:

1.El petición HTTP entrante es recibida a través del núcleo IIS.

2.La solicitud se procesa a través de ISAPI.

3.La solicitud se procesa a través de ASP.NET.

4.La solicitud vuelve a pasar a través de ISAPI.

solicitud

5.El pasa de nuevo a través del núcleo IIS donde se entrega


modo integrado utiliza la respuesta HTTP finalmente:

1.El petición HTTP entrante es recibida a través del núcleo IIS y ASP.NET.

2. El manejador apropiado ejecuta la solicitud y entrega la respuesta HTTP

Aumentar el tiempo de espera de sesión en la web.config según

recuerdo aumentar este hace que la aplicación de consumir más recursos, por ejemplo, memoria

2

Creo que su pregunta tiene la respuesta en el mismo. IIS 6 y 7 tienen un concepto de tiempo de espera del grupo de aplicaciones, esto es diferente del tiempo de espera de la sesión.

Cuál es la diferencia entre los modos ... ya abordados. No estoy seguro de cómo se relacionan sus preguntas con respecto a los conductos y las diferencias en los modos con su problema: los tiempos de espera.

Algunas perspectivas: el tiempo de inactividad no se producirá en un sitio web con tráfico. Probablemente tenga un problema que solo ocurre en un sitio de control de calidad o en su cuadro de desarrollo. La configuración de tiempo de espera inactivo existe para guardar recursos en su caja de desarrollo y compañías de hosting de $ 5/mes con muchos sitios web infrautilizados (por ejemplo, mi blog). Probablemente no desee el tiempo de inactividad en un sitio público.

tiempo de espera de sesión - situado en web.config, si un usuario no choca con el servidor, sus tiempos de espera de la sesión.

Idle timeout Nadie toca el servidor web en absoluto durante 20 minutos, por lo que se cierra para ahorrar recursos. En IIS 6, esto se encuentra en la pestaña de rendimiento del grupo de aplicaciones, y es fácil de desactivar. En IIS 7, puede configurar la configuración avanzada del conjunto de aplicaciones o en el processModel element. No ejecuto tanto IIS 7 como IIS 6, pero parece que al eliminar el elemento de web.config o al establecerlo en 0, se obtiene un tiempo de espera inactivo infinito.

0

DefaultAppPool ignora la configuración del tiempo de espera de la sesión en web.config, pero el grupo de aplicaciones de ASPNet utilizará la configuración en web.config.

58

IIS7 tiene algunos cambios importantes para admitir mejor WCF y una de las piezas clave es el nuevo grupo de aplicaciones integrado. Esta sesión de PDC habla sobre algunos de estos desafíos desde la perspectiva de hacer que los servicios WCF funcionen mejor: http://channel9.msdn.com/pdc2008/TL38/

Esta página tiene una buena visión general de la arquitectura de IIS7: http://learn.iis.net/page.aspx/101/introduction-to-iis7-architecture/. he incluido algunos de los datos clave de este artículo sobre los efectos de los dos tipos diferentes de piscinas aplicación a continuación:

modo de grupo de aplicaciones integrado

Cuando un grupo de aplicaciones está en Integrado modo, puede tomar la ventaja de la arquitectura de procesamiento de solicitud integrada de IIS y ASP.NET. Cuando un proceso de trabajo en un grupo de aplicaciones recibe una solicitud , la solicitud pasa a través de una lista ordenada de eventos . Cada evento llama a los módulos nativos y gestionados necesarios para procesar partes de la solicitud y generar la respuesta. La ejecución de grupos de aplicaciones tiene varias ventajas en el modo integrado. Primero, los modelos de solicitud de procesamiento de IIS y ASP.NET están integrados en un modelo de proceso unificado .Este modelo elimina los pasos que anteriormente estaban duplicados en IIS y ASP.NET, como la autenticación . Además, el modo integrado habilita la disponibilidad de características administradas a todos los tipos de contenido.

modo de grupo de aplicaciones clásico

Cuando un grupo de aplicaciones está en el modo clásico , IIS 7.0 trata las solicitudes como en IIS 6.0 modo aislado de proceso de trabajo. Las solicitudes ASP.NET pasan primero por los pasos de procesamiento nativo en IIS y son y luego se enrutan a Aspnet_isapi.dll para el procesamiento del código administrado en el tiempo de ejecución administrado . Finalmente, la solicitud se reenvía a través de IIS para enviar la respuesta . Esta separación de los modelos de procesamiento de solicitudes IIS y ASP.NET da como resultado la duplicación de algunos pasos de proceso , como la autenticación y autorización . Además, logró funciones de código, tales como la autenticación de formularios, solamente están disponibles para las aplicaciones ASP.NET o aplicaciones para las que tiene la escritura asigna todas las solicitudes para ser manejados por aspnet_isapi.dll. Asegúrese de probar sus aplicaciones existentes para compatibilidad con en el modo integrado antes de actualizar un entorno de producción a IIS 7.0 y asignar aplicaciones a grupos de aplicaciones en el modo integrado . Solo debe agregar una aplicación a un grupo de aplicaciones en modo clásico si la aplicación no funciona en modo integrado. Para el ejemplo , su aplicación puede confiar en en un token de autenticación pasado de IIS al tiempo de ejecución administrado y, debido a a la nueva arquitectura en IIS 7.0, , el proceso rompe su aplicación.

Cuestiones relacionadas