Pregunta

Estoy desarrollando un (relativamente pequeño) sitio web en ASP.Net 2.0.También estoy usando nAnt para realizar algunas fáciles de ajustar en mi proyecto antes de la entrega de los archivos ejecutables.En su estado actual, el sitio web es "precompilado" el uso de

aspnet_compiler.exe -nologo -v ${Appname} -u ${target}

He notado que después de que el IIS de la piscina se reinicia (después de un cierre inactivo o una papelera), la aplicación toma hasta 20 segundos antes de que esté de nuevo en línea (y Application_start se alcanza).

Yo no tengo el mismo problema cuando estoy depuración directamente dentro de Visual Studio (tarda 2 segundos para iniciar) así que me estoy preguntando si el aspnet_compiler es realmente una buena idea.

No pude encontrar mucho en MSDN.¿Cómo se puede compilar sus sitios web para la producción?

¿Fue útil?

Solución

Asegúrese de que:

  1. Usted está utilizando un proyecto de Aplicación Web en lugar de un proyecto de Sitio Web, esto se traducirá en un archivo binario precompilado para el código detrás de
  2. Se ha desactivado la depuración de generación de código en la web.archivo de configuración - supongo que si esto es diferente a cuando se utiliza aspnet_compiler el código puede ser recompilado

Si usted ha intentado aquellos, que tal vez podría intentar ejecutar ngen través de su asamblea ahorrando así el tiempo JIT?

Otros consejos

Por último reponsiveness, no permita que su aplicación se cierre.

El primer método es para asegurarse de que es increíblemente popular, así que siempre hay alguien con ella.

Alternativamente, la recolección de una pequeña de mantener activa la página de algún otro lugar como una actividad programada puede ser usado para mantener su sitio 'caliente'.

Si su sitio web está compilado como actualizables, podrás ver un montón de .ASPX archivos en el directorio virtual.Estos deben ser compilados en el inicio.Eso es lo que puede entrar y modificar la interfaz de usuario web en sí.Este es el valor predeterminado para ambos sitios web y aplicaciones web.

Asegúrese de que se establece en la web.config <compilation debug=false>.En mi caso, también tengo un archivo por lotes que se pide para todas las principales páginas antes de dar a los usuarios en la página de carga de la simulación).

La clave es asegurarse de que el grupo de Aplicaciones de IIS nunca se apaga.Aquí es donde el código es en realidad alojado.Establecer el "tiempo de espera Inactivo" (en Configuración Avanzada) a algo muy alto, como 1440 minutos (24 horas) para asegurarse de que no se apague como siempre que alguien llega a tu sitio una vez al día.

Usted todavía va a tener el JIT el tiempo cada vez que se implementa el nuevo código, o si esta inactivo período de tiempo de espera se supera sin ningún tráfico.

La configuración de IIS 7.x tiempo de espera de Inactividad

@Simon:

  • El proyecto es una Aplicación Web.Los sitios web son entonces más lento de inicio (yo no tenía idea de que había una incidencia, junto a las distintas código de organización)?
  • He comprobado, y mientras puedo editar la web.configuración después de aspnet_compiler se llama, yo no toque el valor de depuración (yo obstante, visite el sitio web no es más rápido para el inicio, si no me toca la web.configuración, sólo para asegurarse de que)

(Y definitivamente voy a echar un vistazo a ngen, yo no era consciente de que la herramienta).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top