Precompilar soluciones para el despliegue de ASP.NET
-
13-09-2019 - |
Pregunta
Estoy usando aspnet_compiler.exe precompilar mi solicitud para el despliegue.
Sin embargo, no creo que esté funcionando, por dos razones:
- Veo mis montajes de aplicaciones en C:. \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files, aunque lo borre manualmente a cabo este directorio y reiniciar la aplicación
- El impacto en el rendimiento de la aplicación JIT está presente. Esto es muy específicamente lo que me gustaría evitar, a pesar de que es 'una vez'.
Aquí es específicamente lo que estoy haciendo:
- Construir la solución en el estudio.
- ejecutar aspnet_compiler.exe -v / Foo -PC: \ builddir c: \ deploydir (donde foo es el vdir mi aplicación se ejecuta bajo, c: \ builddir es donde el estudio se basa en, y c: \ deploydir es el lugar donde
- I A continuación, copie c: \ deploydir al servidor web .
- http: // localhost / Foo
- Después de 30 segundos, las pantallas de aplicaciones, y puedo ver que las asambleas se han generado en los archivos temporales de ASP.NET.
Si es notable, estoy usando .NET 3.5 SP1 / Studio 2008 SP1. compilation debug = false también se encuentra en web.config.
Solución
Sus dos puntos son discutibles:
-
ASP.NET compilación previa no da lugar a la generación de imágenes nativas de modo sobrecarga JIT todavía estará allí. Puede haber una creación sobrecarga proceso de trabajo también.
precompilación -
ASP.NET tiene la opción de compilar todo (incl. ASPX cosas, ...) o simplemente el código fuente (que se puede especificar con el interruptor
-u
). En este último caso, esos montajes todavía se generarán los archivos ASPX. En el caso de los primeros, lo que está viendo no es la generación de montaje. El tiempo de ejecución sólo copia y almacena en caché los montajes en/bin
enTemporary ASP.NET Files
. Puede confirmar este hecho comparando el byte a byte asambleas y ver que son idénticos.
Otros consejos
Precompilar la página web con aspnet_compiler.exe
no JIT compila el código - que necesitaría NGEN el código para hacerlo.
El generador de imágenes nativas (Ngen.exe) es una herramienta que mejora la el rendimiento de las aplicaciones administradas. Ngen.exe crea imágenes nativas, las cuales son archivos que contienen compilados código de máquina del procesador específico, y los instala en la imagen nativa caché en el equipo local. los tiempo de ejecución puede utilizar las imágenes nativas de la caché en lugar de utilizar el tiempo justo a (JIT) para compilar el original montaje.