zoukankan      html  css  js  c++  java
  • asp.net编译模型

    当一个web应用程序完成后,部署到iis中有以下几种方式:

    源码部署:

    就是把工程内的文件原封不动的Copy到iis中。当有请求的时候,asp.net会在编译目录的根目录下寻找一个以.compiled为扩展名的保留文件(Preservation File)。每一个Page页面都会有一个对应的保留文件。保留文件只会存在于编译根目录下。里面记录了Page类编译后的相关信息。如果没有,则会对请求的页面进行动态编译。编译生成dll的目录一般是C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 \Temporary ASP.NET Files。编译的范围是以目录为单位。编译的过程是将前台aspx页面与后台cs页合并生成dll,并在编译目录的根目录下生成一个保留文件。如果有,则判断从上一次编译后相关源代码是否进行过修改,如果修改过了,则再次编译。最后通过保留文件提供的信息来加载编译后的程序集及以后操作。

    比如一个default.aspx页面。在dll中会产生两个与其对应的类:default与default_aspx。其中前者只编译了后台cs代码,后者才是default.aspx页面的最终体现。

    优点:最灵活。

    缺点:很差安全性。首次访问很慢

    可更新的预编译部署:

    这种方式会将所有后台cs文件编译到一个dll程序集中,当有请求时,会对相应的前台aspx文件与dll程序集中相应的类进行动态编译。

    但是以这种方式生成的dll与完全动态生成的Dll有所不同:比如一个default.aspx页面,在bin目录中的dll里只会有 default类,没有default_aspx类,因为只是部份编译。等到对default.aspx页面进行了访问后,会在Temporary ASP.NET Files目录下生成另一个dll文件,此文件只包含default_aspx类,也就是说,只编译后台cs代码所生成的类与最终aspx与cs合并后生成的类不在一个程序集里面。

    优点:灵活。

    缺点:较差安全性。首次访问慢。

    不可更新的预编译部署:

    这种方式会将所有前台aspx与后台cs文件编译到一个dll程序集中,但还是会留下aspx占位文件。当有请求时,直接进行操作。

    优点:不灵活。

    缺点:无首次访问慢的问题。

    参考的文章:

    ASP.NET2.0编译模型

    http://www.cnblogs.com/papaya73/archive/2008/07/04/1235977.html

    深入剖析ASP.NET的编译原理之一:动态编译(Dynamical Compilation)

    http://www.cnblogs.com/artech/archive/2007/05/21/753620.html

    深入剖析ASP.NET的编译原理之二:预编译(Precompilation)

    http://www.cnblogs.com/artech/archive/2007/05/26/760292.html

  • 相关阅读:
    树形DP新识
    HDU3652 B-number 数位DP第二题
    HDU3555 Bomb 数位DP第一题
    数位DP新识
    Codeforces Round #371 & HihoCoder1529【玄学】
    hihocoder1618 单词接龙
    后缀数组 逐步探索
    HDU2157 How many ways矩阵再识
    阿里云安全中心:自动化安全闭环实现全方位默认安全防护
    趣谈预留实例券,一文搞懂云上省钱最新玩法
  • 原文地址:https://www.cnblogs.com/ljzforever/p/1681450.html
Copyright © 2011-2022 走看看