asp.net 动态编译与禁止

当创建一个ASP.NET 页面的时候,其实就是创建一个.NET 的类的源代码,创建System.Web.UI.Page 类的一个实例(instance)。Asp.net 页面的所有内容包括脚本(Script) 和HTML 内容都会编译进 .NET 类中。

请求一个ASP.NET 页面时会自动检测这个页面对应的类,如果不存在则编译成一个新的类,并且把编译后的类(程序集)保存在:

WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 的临时文件夹中

在页面下次访问时就不在再进行编译了,先前编译类会执行并把结果返回给浏览器。

这样就服务器断电多时再启动服务器都再访问时都不会再需要编译,那么我们可以禁止动态编译吗?答案当然是可以,但是有先决条件:

禁止动态编译(禁止页面后页面不会向内存加入程序集,可以节约内存):

CompilationMode 具备三个属性:Always,Auto,Naver

只要在 @Page 中加入 CompilationMode="Never" 就可以禁止此页面编译了。

如果需要整个网站禁止编译需要在 Web.Config 中的 Pages 属性设置CompilationMode 就可以禁止整个文件夹或者真个应用程序动态编译。

注意事项:对于包含服务器代码和服务器控件的页面是不能禁止编译的。

posted @ 2011-08-24 16:46  蓝雨.Berners  阅读(1309)  评论(2编辑  收藏  举报