Alternativa al grupo de aplicaciones startMode = "AlwaysRunning"

8

Si una aplicación web requería que se configurara con su grupo de aplicaciones para configurarse en applicationHost.config como:

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

¿Se lograría el mismo resultado simplemente solicitando una página del servidor cada minuto? ¿O establecer startMode a este valor también tiene otras implicaciones?

Chris Marisic
fuente

Respuestas:

6

Parece ser lo mismo. Aparentemente, dado que Microsoft vio que los desarrolladores tenían que hacer esto, crearon esta nueva característica para manejar esto automáticamente.

[Los desarrolladores] entonces diseñan scripts personalizados para enviar solicitudes falsas a la aplicación para "despertarlo" periódicamente y ejecutar este código antes de que un cliente lo acceda, o simplemente hacen que el desafortunado primer cliente que accede a la aplicación espere mientras esta lógica termina antes. procesando la solicitud (lo que puede llevar a un largo retraso para ellos).

ASP.NET 4 se entrega con una nueva característica llamada "inicio automático" que aborda mejor este escenario, y está disponible cuando ASP.NET 4 se ejecuta en IIS 7.5 (que se entrega con Windows 7 y Windows Server 2008 R2). La función de inicio automático proporciona un enfoque controlado para iniciar un proceso de trabajo de la aplicación, inicializar una aplicación ASP.NET y luego aceptar solicitudes HTTP.

De las aplicaciones ASP.NET de inicio automático de Scott Guthrie (VS 2010 y .NET 4.0 Series) .

Entonces, a menos que no esté usando IIS 7.5, yo diría que solo use la funcionalidad incorporada.

(Y gracias; no conocía esta característica, pero definitivamente puedo pensar en sitios que desarrolle para que puedan usarla).

James Skemp
fuente
66
Es una lástima que hayan creado esta función en el nivel applicationHost.config. En su lugar, debería estar en el nivel web.config.
Chris Marisic
4

IIS 7.5 incluye un indicador adicional en un sitio o nivel de aplicación llamado preloadEnabled. Establecer esto en verdadero creará una solicitud falsa para calentar el sitio. Debe usarse en conjunción con autoStart.

autoencendido

<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
fuente