2010-09-02 5 views
2

J'ai commencé une minuterie pour visiter mon application tous les 20 minutes au Applicaiton_start au global.asax.Est-ce un moyen sûr de garder une application asp.net en vie sans être recyclé?

void Application_Start(object sender, EventArgs e) 
{ 
System.Timers.Timer tm = new System.Timers.Timer(20 * 60 * 1000); 
tm.Elapsed += new System.Timers.ElapsedEventHandler(tm_Elapsed); 
} 

void tm_Elapsed(object sender, System.Timers.ElapsedEventArgs e) 
{ 
System.Net.WebRequest rqst = System.Net.WebRequest.Create("MySite URL"); 
rqst.GetResponse(); 
} 

Est-ce un moyen sûr ou d'autres façons. Je le fais pour exécuter des tâches de planification à l'aide quartz.net ...

Répondre

1

Vous devriez juste pouvoir modifier IIS pour faire ceci. IIS est configuré pour supprimer les applications après 'x' minutes d'inactivité. Votre code empêcherait probablement le site d'être supprimé en raison de l'inactivité. Toutefois, IIS est également défini par défaut pour recycler les applications toutes les «x» minutes/heures. Votre code n'arrêterait pas cela. Cela arrive indépendamment de l'activité. Il est conçu pour éliminer les fuites de mémoire, etc. Si vous le désactivez (vous pouvez le faire également dans IIS), vous devez veiller à ce que les performances de votre site ne se dégradent pas au fil du temps.

+0

je suis l'hébergement partagé donc je ne peux pas obtenir les paramètres iis –

+0

Je devine que le meilleur que vous pouvez faire dans ce cas est ce que vous suggérez - mais je mettrais la minuterie à 19mins. Si IIS est configuré pour désactiver votre site après 20 minutes d'inactivité, vous ne souhaitez pas que votre minuteur soit également défini sur 20 minutes. –

5

Alors que autopinging votre application est une façon de le garder en vie vous pouvez également configurer le pool d'applications dans IIS pour ne pas recycler:

alt text

Décochez simplement la case Shutdown worker processes after being idle for. Également sur l'onglet Recycling, vous trouverez d'autres options utiles.

+0

si ma méthode est sûre? –

+0

je suis l'hébergement partagé donc je ne peux pas faire tous ces ... –

+0

@Pandiya - si vous êtes dans un environnement d'hébergement partagé alors il n'y a rien que vous pouvez faire pour arrêter le recyclage - voir ma réponse - que cela arrive, peu importe combien occupé site est à la fois. –