asp.net-mvc - mvc - asp.net core web api 2
La primera solicitud de sesión de la API web es muy lenta (2)
Estoy escribiendo una aplicación ASP.NET Web API alojada en IIS7 (sin configuración especial).
Mi problema es que para cada primera solicitud (en una nueva máquina / nuevo navegador / después de un tiempo ...) hay una gran demora, ¡incluso en solicitudes que devuelven constantes!
He leído acerca de las secuencias de comandos de "calentamiento", pero este no es el problema aquí. Parece que el servidor web está intentando crear una sesión y lleva mucho tiempo. ¿Alguna sugerencia?
EDITAR
Creo que la demora es causada por la creación del proceso de trabajo para cada nueva sesión. Ahora la pregunta es: ¿por qué es tan lento y por qué el servidor web no reutiliza los procesos de los trabajadores que viven para atender las solicitudes?
He configurado el grupo de aplicaciones para limitar los procesos de trabajo a 5 sin tiempo de espera (establecido en 0). Esto causó que las primeras cinco sesiones fueran lentas en las primeras solicitudes (con las que puedo vivir) y ahora los procesos de trabajo están activos. ¡Pero sorprendentemente, de vez en cuando, la solicitud vuelve a ser lenta!
Si está utilizando Windows Server 2008 R2, puede configure the Auto-Start feature
en el grupo de aplicaciones. También en las propiedades del grupo de aplicaciones debe inhabilitar su reciclaje a intervalos regulares. Sin embargo, tenga en cuenta que si bien esto limitará la lentitud, el grupo de aplicaciones aún podría ser reciclado por IIS. Con la función de inicio automático, se cargará nuevamente automáticamente en la memoria, pero el código en su Application_Start
se ejecutará en la siguiente solicitud. Entonces todavía puedes observar algo de lentitud.
Otra causa puede ser https. Nuestro sitio puede ejecutarse con y sin https. La demora en la primera página (de 5 a 15 segundos) solo ocurre con el uso de https. Esta publicación explica el problema con https y la solución: