Retraso enorme en la primera solicitud del navegador a la aplicación web alojada Mono XSP
Estamos utilizando el servidor web Mono (2.10) XSP4 para alojar una aplicación web ASP.Net MVC3 que se ejecuta en un Linux (ARM) incorporado. Al iniciar XSP4, lleva unos segundos hasta que esté listo y acepte solicitudes. No hay problema con eso hasta ahora.
Pero cuando se realiza la primera solicitud de un navegador / visitante del sitio web, XSP4 usa toda la CPU que puede obtener durante aproximadamente 55 segundos hasta que la página web se muestra (con éxito) en el navegador web. Esto sucede después de cada inicio / reinicio de XSP.
Mi primer pensamiento fue que esta es la compilación justo a tiempo de toda la aplicación web. Así que creé un paquete de implementación que solo contiene los binarios, .css, .js y las vistas (.cshtml). Funcionó pero aún tuvo este gran retraso.
Luego intenté precompilar esa aplicación web usando Visual Studio (como se indica en algunas notas de la versión Mono). Nuevamente, el sitio web funcionó bien, pero la gran demora aún estaba presente.
Algunas preguntas que realmente tengo en mente:
¿Alguien sabe qué hace el servidor web XSP cuando llega la primera solicitud del navegador? ¿Es esta la compilación justo a tiempo, incluso si es una aplicación web precompilada? ¿Por qué lo hace después de cada inicio de nuevo? ¿Se puede reducir el gran retraso en general de alguna manera? ¿Se puede reducir la enorme demora para que solo se realice en la primera solicitud del navegador después de una actualización de la aplicación web (almacenada en caché entre las ejecuciones posteriores de XSPCualquier ayuda / ideas sería genial.
Actualizar Mientras tanto, descubrí que el retraso es causado por el compilador Mono / ASP.Net dcms que construye y compila las vistas de la maquinilla de afeitar MVC3 en /tmp/root-aspnet.../ que está asignado a la memoria y, por lo tanto, no es persistente. Ahora estoy buscando una manera de controlar dónde XSP4 / Mono.WebServer / Mono-Asp.Net almacena estos archivos compilados. Si alguien está familiarizado con esto, hágamelo saber; -)