Primera solicitud después de un tiempo siempre lenta: ASP.NET MVC / IIS 8.5 / Windows Server 2012 R2 VPS


12

Estoy alojando una aplicación ASP.NET MVC 5 de bajo tráfico en un VPS con Windows Server 2012 R2 / IIS 8.5, con 1 GB de RAM.

Mi problema es que la primera solicitud después de un tiempo sin ninguna solicitud siempre recibe una respuesta lenta, alrededor de 1.5 segundos según Chrome Dev Tools. Las solicitudes / respuestas de actualización posteriores solo tardan unos 45 ms .

Ya configuré el Modo de inicio en AlwaysRunning en el grupo de aplicaciones y Preload Enabled en True en el nivel del sitio web, pero no tuvo absolutamente ningún efecto . Incluso si no hay cambios / cargas de ningún tipo, después de un tiempo, con la siguiente solicitud, se necesitan 1.5 s para obtener una respuesta.

Respuestas:


9

El problema es que necesita instalar la función IIS Application Initialization. Entonces debería funcionar con su configuración.

La imagen es del blog de Rick Strahl :

Característica IIS

También recuerde configurar:

  • Modo de inicio para ejecutar siempre en el grupo de aplicaciones
  • Precarga habilitada en True en el nivel del sitio web

Puede establecer esta configuración sin instalar el Módulo de inicialización de la aplicación , pero no tendrá ningún efecto.

Más información aquí .


0

¿Existe potencialmente una discrepancia de versión entre la versión de .NET Framework a la que apunta su sitio web en comparación con la versión de .NET Framework Runtime instalada en el servidor web?

¿Y está implementando un sitio web que no está precompilado y / o es actualizable? -

Configuración avanzada de precompilación

Las actualizaciones de la versión .NET Runtime están destinadas a ser altamente compatibles con versiones anteriores. Sin embargo, me encontré con un problema muy similar al migrar múltiples sitios web dirigidos a .NET 4.5.1 Framework desde un servidor Windows Server 2008 R2 a un servidor Windows Server 2012 R2 parcheado a .NET 4.6 Runtime. Todas las cargas de mi página inicial (en varios sitios web) comenzaron a tomar dos minutos para cada página individual, en lugar de una fracción de segundo. Y todos mis experimentos con diferentes configuraciones de IIS no tuvieron éxito en resolver el problema.

Finalmente pude resolver el problema de una de dos maneras:

  1. Volver a crear completamente el servidor, parcheado en .NET 4.5 Runtime resolvió mi problema (junto con agregar una configuración de registro para bloquear la instalación de .NET 4.6.1 ).
  2. Alternativamente, volver a desplegar mis sitios web con "Precompilar" marcado y con "Permitir ser actualizable" sin marcar también resolvió mi problema.

Por el contrario, todos mis intentos de revertir o reparar la versión .NET Runtime en el servidor a .NET 4.5 Runtime no resolvieron mis problemas de carga de página. (Esencialmente, no existe un proceso limpio y confiable para deshacer por completo un .NET Runtime antes de volver a generar imágenes del servidor).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.