2010-10-28 19 views
5

mieux que je peux dire quand un processus de travail réutilise:Synchronisation du recyclage de l'application Asp.Net?

a) un nouveau tourne avant l'ancien arrête b) l'ancien arrête une fois que toutes les demandes actives de son service complète

Est-ce que ce qui précède est exact?

Si tel est le cas, j'ai des données que je stocke dans SQL une fois que Application_End() se déclenche à partir du fichier global.ascx. Je retire ces données lorsque Application_Start() se déclenche.

Le problème est basé sur mes tests, le nouveau processus de travail déclenche l'Application_Start() avant que mon ancien processus de travail ait une chance de terminer son Application_End().

Quelles sont les meilleures pratiques pour gérer cette situation?

acclamations à l'avance

modifier: Je viens de remarquer une caractéristique sur IIS 7 « Désactivé chevauché Recycler » - Je devine que c'est le meilleur itinéraire

Répondre

5

Votre description de CHEVAUCHENT recyclage est exacte, oui (1); et il existe un paramètre pour le désactiver, mais il est destiné à empêcher les erreurs HTTP que vous réintroduireiez. Les recyclages de pool d'applications sont une occurrence normale pour les applications gérées (provenant, entre autres, d'une limitation CLR qui empêche le déchargement des assemblys dans le même espace mémoire) que vous devez concevoir.

Votre technique serait difficile à gérer dans un scénario web ferme ou web-jardin. Je pense qu'une meilleure conception consisterait à utiliser un stockage hors processus pour les données (à l'aide de produits de cache distribués tels que ScaleOut, App Fabric, etc.) afin que tous les pools d'applications aient la même vue de la mémoire cache. Les données.

(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

Oui je suis d'accord, cette approche me laisse dans une impasse si nos échelles d'application et doit à la tête dans le scénario web ferme/jardin. Existe-t-il des produits de cache distribués gratuits - je suppose que la plupart ont un coût important? – downatone

+0

Windows Server AppFabric est une extension gratuite de Windows Server, qui devrait également être un composant natif des futures versions de Windows Server. – Nariman

+0

Vous avez raison: le cache distribué est vraiment la meilleure solution. – downatone