Alternative au pool d'applications startMode = "AlwaysRunning"

8

Si une application Web a demandé à être configurée avec son pool d'applications à configurer dans l'applicationHost.config comme:

<add name="AppPool" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />

Le même résultat serait-il obtenu en demandant simplement une page au serveur toutes les minutes? Ou la définition de startMode sur cette valeur a-t-elle également d'autres implications?

Chris Marisic
la source

Réponses:

6

Il semble que ce soit la même chose. Apparemment, depuis que Microsoft a vu les développeurs devoir faire cela, ils ont créé cette nouvelle fonctionnalité pour gérer automatiquement cela.

Les développeurs développent ensuite soit des scripts personnalisés pour envoyer de fausses demandes à l'application afin de les «réveiller» périodiquement et exécuter ce code avant qu'un client ne le frappe, soit simplement faire attendre le malheureux premier client qui accède à l'application pendant que cette logique se termine avant le traitement de la demande (ce qui peut entraîner un long délai pour eux).

ASP.NET 4 est livré avec une nouvelle fonctionnalité appelée «démarrage automatique» qui répond mieux à ce scénario et est disponible lorsque ASP.NET 4 s'exécute sur IIS 7.5 (fourni avec Windows 7 et Windows Server 2008 R2). La fonction de démarrage automatique fournit une approche contrôlée pour démarrer un processus de travail d'application, initialiser une application ASP.NET, puis accepter les requêtes HTTP.

À partir des applications ASP.NET à démarrage automatique de Scott Guthrie (série VS 2010 et .NET 4.0) .

Donc, sauf si vous n'utilisez pas IIS 7.5, je dirais simplement utiliser la fonctionnalité intégrée.

(Et merci; je ne connaissais pas cette fonctionnalité, mais je peux certainement penser aux sites que je développe pour pouvoir l'utiliser.)

James Skemp
la source
6
C'est vraiment dommage qu'ils aient créé cette fonctionnalité au niveau applicationHost.config. Il devrait plutôt être au niveau de web.config.
Chris Marisic
4

IIS 7.5 inclut un indicateur supplémentaire au niveau d'un site ou d'une application appelé preloadEnabled. La définition de cette valeur sur true créera une fausse demande de réchauffement du site. Il doit être utilisé en conjonction avec autoStart.

autoStart

<add name="{yourapppoolname}" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" startMode="AlwaysRunning" />

preloadEnabled

<site name="YOURSITENAMEHERE" id="4″>
  <application path="/" applicationPool="YOURAPPPOOL" preloadEnabled="true">
  <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\YOURSITENAME" />
  </application>
</site>
Oliver
la source