visual studio net deploy asp asp.net iis iis-7.5 splash warm-up

studio - Inicialización de la aplicación IIS 7.5 para el servicio web ASP.NET(calentamiento) sin volver a asignar solicitudes



publish asp.net web api to iis (1)

Estoy intentando usar la extensión de inicialización de la aplicación IIS 7.5 para configurar un proceso de calentamiento para mi aplicación web. Este es un enfoque que estoy tomando para minimizar los retrasos causados ​​por el reciclaje del grupo de aplicaciones, que es un problema que se explica bien en otras preguntas sobre el desbordamiento de pila .

Lo que me gustaría , es obtener los beneficios de la inicialización de la aplicación, sin volver a asignar solicitudes en ningún otro lugar.

Lo que he hecho hasta ahora

Seguí las instrucciones de IIS 8 para el caso de uso básico, ¡y funciona muy bien! Creé una página de bienvenida llamada app_starting.htm y al usar este código, se muestra mientras la aplicación se inicializa:

<applicationInitialization remapManagedRequestsTo="app_starting.htm" skipManagedModules="true" > <add initializationPage="/" /> </applicationInitialization>

Porque esto no es bueno

Quiero usar la inicialización para acelerar las solicitudes a un servicio web basado en REST escrito con ASP.NET MVC. Este servicio web es un backend para varias aplicaciones. Cuando realizan una solicitud a un recurso (es decir, /client/1/addresses ), no pueden manejar la recepción de una página de bienvenida.

Lo que he intentado

remapManagedRequestsTo atributo remapManagedRequestsTo . Sin embargo, ahora cuando solicito un recurso durante la inicialización, recibo un error 500 hasta que se complete la inicialización. Después de lo cual, las respuestas vuelven a la normalidad. Las aplicaciones que dependen de este servicio tampoco responderían bien a un error 500, ya que la inicialización no debería ser una condición de error.

Lo que necesito

Sin realizar ninguna reasignación, espero que el comportamiento de la solicitud vuelva a la normalidad. Incluso si la inicialización está en curso, otras solicitudes a la aplicación deben ponerse en cola y esperar hasta que se complete la inicialización.

¿Hay algo que este olvidando? ¿Puedo lograr esto?

¡Gracias por la ayuda!


Creo que respondí mi propia pregunta. skipManagedModules atributo skipManagedModules y funcionó. Este código realiza la inicialización de la aplicación y, durante el calentamiento, las solicitudes parecen esperar a que se complete antes de procesarse:

<applicationInitialization> <add initializationPage="/" /> </applicationInitialization>

No pude encontrar ninguna documentación de por qué se comporta de esta manera y realmente no entiendo lo que significa skipManagedModules . Si alguien puede explicar esto, puedo marcar la explicación como una respuesta. ¡Gracias!