asp.net - Primera solicitud de la aplicación web de IIS 7.5 después del reciclaje del grupo de aplicaciones muy lento
iis-7.5 windows-server-2008 (1)
Tenemos nuestro sitio web funcionando en dos máquinas con iis 7.5 One funciona bien.
El otro, como siempre, tarda mucho tiempo en procesar la primera solicitud después de un reciclaje del grupo de aplicaciones. Puede tomar más de 60 segundos, lo que no es aceptable, ya que se utilizará como nuestro servidor de producción.
He comprobado la configuración del grupo de aplicaciones en los dos servidores y son iguales, y la versión de la aplicación web en ambos servidores es la misma. He ejecutado el administrador de tareas y el monitor de recursos, agregue ver una conexión a la máquina cuando hago la solicitud pero no sucede nada más, iis ni siquiera muestra la solicitud en los registros hasta que se completa. Realmente no sé qué está haciendo mientras tanto.
¿Hay algún rastro de ajustes con los que podamos intentar jugar para solucionar este problema o encontrar el problema? Es muy desconcertante.
EDIT: Así que ahora tengo más información, finalmente todos los registros de solicitud fallidos funcionaron (tuve que otorgarle al usuario permisos IIS_IUSRS) pero tengo algunos registros para ver qué está pasando
El tiempo perdido se encuentra entre dos segundos en el archivo de registro.
1. MODULE_PRECONDITION_NOT_MATCH Name="ScriptModule-4.0", Precondition="managedHandler,runtimeVersionv4.0" 12:09:46.422
2. VIRTUAL_MODULE_UNRESOLVED Name="FormsAuthentication", Type="System.Web.Security.FormsAuthenticationModule" 12:12:04.390
Como puede ver, lleva más de 2 minutos entre esos dos eventos, ¿alguien contó esto antes?
Es un poco difícil saber qué está pasando en su otro servidor, sin embargo, aquí hay una lista de verificación simple que quizás desee reconsiderar:
¡Siempre precompila tu sitio, en lugar de copiarlo! es posible que obtenga un aumento significativo del rendimiento al compilar su sitio web antes de la implementación: Descripción general de la precompilación de ASP.NET
No ejecute la aplicación de producción con
debug="true"
habilitado, cuando el indicador de depuración sea verdadero en su web.config, se usa mucha más memoria dentro de la aplicación en tiempo de ejecución, y como algunas rutas de depuración adicionales están habilitadas, los códigos pueden ejecutarse mucho más lentamenteVerifique su archivo Web.config para asegurarse de que el rastreo esté deshabilitado en la sección
<trace>
IIS 7.5 viene con la característica de inicio automático . WAS (Servicio de activación de procesos de Windows) inicia todos los grupos de aplicaciones que están configurados para iniciarse automáticamente, asegúrese de que su grupo de aplicaciones esté configurado para
AlwaysRunning
en laapplicationHost.config
IISAlwaysRunning
, consulte aquí para obtener más detallesRevise el archivo
ASPNET.CONFIG
para ver si la configuración en ambos servidores sigue siendo la misma. Cada servidor asp.net puede estar bien configurado por el archivoaspnet.config
ubicado en la raíz de la carpeta del marcoAsegúrese de que la Evidencia del editor para la Seguridad de acceso al código (CAS) esté configurada como falsa en su archivo aspnet.config. Esto podría aumentar la carga de la página inicial cuando reinicie el grupo de aplicaciones ASP.NET. Puedes leer más sobre esto aquí .
Aquí se explica cómo deshabilitar la comprobación de la política de editor de CAS para una aplicación:
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
- También es posible que desee probar el Módulo de Inicialización de Aplicaciones para IIS 7.5 , este módulo también disponible en IIS 8.0 puede disminuir el tiempo de respuesta para las primeras solicitudes al cargar previamente los procesos de trabajo