2008-08-25 32 views
12

La primera vez que cargo el sitio web en el servidor web de producción, comienza muy lento, las páginas siguientes se cargan muy rápido (incluida la página de inicio).El primer inicio del sitio Asp.net es muy lento

Precompié el sitio, pero nada cambia.

No tengo ningún código en el inicio de la aplicación. No tengo elementos almacenados en caché.

¿Alguna idea? ¿Cómo puedo descubrir qué está pasando?

Respuesta

11

Es solo el dominio de su aplicación cargando y cargando cualquier binario en la memoria. Además, está inicializando variables estáticas, por lo que si tiene una variable estática que carga una gran cantidad de datos de la base de datos, podría tomar un poco.

+0

Seguramente es un error de diseño cuando iniciar un sitio web es tan lento? –

0

Esto suena muy parecido a compilar en segundo plano; aunque si estás precompilando, eso no debería ser un problema.

Lo primero que vería es su ORM (si corresponde). NHibernate, en particular, tiene una seria penalización de inicio, ya que ejecuta múltiples compiladores en segundo plano al inicio para convertir cada clase en su capa de datos en su propio ensamblaje en memoria.

2

Cuando publicó el sitio, ¿eligió hacer el sitio web "actualizable" en la configuración del sitio web de publicación o no? Si recuerdo bien, el archivo aspx/ascx también debe compilarse, y si son "actualizables", el primer inicio provocará la recompilación de esos recursos.

0

Solo un rápido guiño a Darren. Ese es el comportamiento típico de una aplicación .NET después de realizar una actualización de DLL. Después de la carga inicial, todo debería ir bien.

0

Cuando dice "precompilar" el sitio, ¿está utilizando la utilidad aspnet_compiler para precompilar, o simplemente utilizando la opción "Crear sitio" en Visual Studio?

Si no se lleve a cabo el anterior, recomiendo giving it a spin. Junto con Web Deployment Projects, debería ser más fácil implementar su sitio para cada versión.

0

La lentitud inicial es un par de cosas:

  • el dominio de aplicación se esté configurando
  • ASP.NET es analizar y compilar las páginas ASPX.
  • Contextos globales se están inicializando.

Este es un comportamiento normal para ASP.NET.

0

@Mickey: No, está apagado. ¿Debo encenderlo para averiguarlo?

El registro de seguimiento le mostrará cuánto tiempo tarda cada acción. Podría ayudarte a encontrar lo que lleva tanto tiempo.

Here es un enlace que puede ayudarlo a configurarlo.

1

¿Intenta borrar su registro de eventos?

1

Asegúrese de publicar su aplicación en 'versión' y no 'depurar'. Me di cuenta de que esto reduce considerablemente el tiempo de carga. El archivo web.config se actualizará.