ASP.NET 2.0中的一大新特性,是采用了动态编译,使到可以在编辑或者保存修改后的网页后,直接在浏览器中访问,而不需要再次编译,但这有个缺点,编译过程将导致第一次请求 ASP.NET 页面时的响应速度比后续请求慢,而在ASP.NET 2.0中,另外提供了预编译的功能(Precompiling),使用该功能,可以立即将结果显示给第一个用户,并且可以在批编译过程中检测到 ASPX 页面中的任何错误。但是,批编译确实会延长应用程序的启动时间,而且必须内置在 web.config 文件中。
而ASP.NET 2.0的预编译,又分为两种,第一种是In-place编译,该编译只需要在浏览器中输入http://站点名称/WebApp名称/PreCompile.axd,系统就会将WebApp里面所有的页面先给编译一遍,运行后如下图:
在ASP.NET 2.0中,提供一种更新的编译部署方式,叫Precompilation deployment(部署预编译)。Net Framework 2.0提供了一个命令行的工具(aspnet_compiler.exe),可以将WebApp中所有的代码、页面(包括HTML)、静态文件全部编译进dll,然后进行部署,得到的目标系统中,只包含编译后的dll,甚至连HTML页面文件都是不存在的,大大增强了系统的安全行,但是浏览起来和普通的ASP.NET 应用没有任何区别。使用方法如下:
aspnet_compiler.exe一般在WINNT目录下的 .net framework 2.0子目录下可以找到,使用格式为:
aspnet_compiler -v /-p
其中,websitename为你要部署的web应用程序的虚拟目录名,为你要部署的web应用程序的物理路径,〈destination>为即将部署的应用程序的目标物理路径,比如:
aspnet_compiler -v /Deployment
-p c:/inetpub/wwwroot/myprojects/Developer/deployment c:/compiled
则所有的文件都会被部署预编译到c盘的compiled目录下,而且该目录下,你会发现没有任何的代码文件和HTML文件了。