2010-10-28 15 views
5

lo mejor que pueda decir cuando un proceso de trabajo recicla:Asp.Net App Pool ¿Superposición del tiempo de reciclaje?

a) una nueva gira antes de que el viejo se apaga b) el viejo se apaga una vez que todas las solicitudes activas de su servicio completa

¿Es correcto lo anterior?

Si es así, tengo datos que almaceno en SQL una vez que Application_End() se dispara desde el archivo global.ascx. Retiro estos datos cuando se activa Application_Start().

El problema se basa en mis pruebas, el nuevo proceso de trabajo desencadena el Application_Start() antes de que mi proceso de trabajo anterior tenga la oportunidad de completar su Application_End().

¿Cuáles son las mejores prácticas para manejar esta situación?

aplausos de antelación

editar: Me he dado cuenta de una característica en IIS 7 'Desactivado superpuesta de reciclaje' - Supongo que esta es la mejor ruta

Respuesta

5

Su descripción de OVERLAPPED reciclaje es exacta, sí (1); y hay una configuración para deshabilitarla, pero está destinada a evitar errores HTTP que volvería a introducir. Los reciclados del grupo de aplicaciones son una ocurrencia normal para las aplicaciones administradas (derivadas, entre otras cosas, de una limitación de CLR que impide la descarga de ensamblados en el mismo espacio de memoria) para los que debe diseñar.

Su técnica sería difícil de manejar en un web de la granja o Web-jardín escenario.

Creo que un mejor diseño sería confiar en el almacenamiento fuera de proceso para los datos (utilizando productos de caché distribuida como ScaleOut, App Fabric y similares) para que todos los grupos de aplicaciones tengan la misma vista del almacenamiento en caché datos.

(1) - http://mvolo.com/blogs/serverside/archive/2008/02/25/Starting_2C00_-stopping-and-recycling-IIS-7.0-Web-sites-and-application-pools.aspx

+0

sí estoy de acuerdo, este enfoque me deja en un dilema si nuestras escalas de aplicación y necesita a la cabeza en el escenario/jardín web de la granja. ¿Hay algún producto gratuito de caché distribuida? Supongo que la mayoría tiene un costo significativo. – downatone

+0

Windows Server AppFabric es una extensión gratuita de Windows Server; también se espera que sea un componente nativo de futuras versiones de Windows Server. – Nariman

+0

Tiene razón: el caché distribuido es realmente el mejor camino a seguir. – downatone