客户端第一次请求某一个aspx文件时,在服务器端,csc或vbc首先将该aspx文件相关的.cs编译成dll,然后再运行这个dll文件,将绘制的html返回给客户端,然后以后的访问就直接调用编译后的dll 。同时把该dll文件保存在%Windir%\Microsoft.NET\Framework\<框架版本号>\Temporary ASP.NET Files\$YourWebAppName$\随机数\随机数\目录下。在该目录下我们发现每一个编译后的cs文件将分别产生一系列文件。假设该文件名为index.aspx,它将产生如下文件:
index.aspx.c6be2b85.xml,该文件中包含以下内容:
<preserve assem="ic4c67s_" type="ASP.index_aspx" hash="48be2af831319072">
<filedep name="c:\inetpub\wwwroot\UnicomJx\WorkFlow\bin\WorkFlow.DLL" />
<filedep name="c:\inetpub\wwwroot\UnicomJx\WorkFlow\bin\Microsoft.Web.UI.WebControls.DLL" />
<filedep name="c:\inetpub\wwwroot\UnicomJx\WorkFlow\OfficeThingManage\index.aspx" />
</preserve>
assem属性指示编译时产生的文件名前缀
filedep包含编译时产生的文件名和aspx文件名之间的映射关系,以及该文件所引用的dll;
ic4c67s_.pdb:包含了辅助调试信息和单步调试代码
ic4c67s_.cs:该文件包含以下内容(注:省略部份代码)
public class index_aspx : twoa.module.tool.index, System.Web.SessionState.IRequiresSessionState
{
public index_aspx() {
System.Collections.ArrayList dependencies;
if ((ASP.index_aspx.__initialized == false)) {
ASP.index_aspx.__stringResource = System.Web.UI.TemplateControl.ReadStringResource(typeof(ASP.index_aspx));
dependencies = new System.Collections.ArrayList();
dependencies.Add("c:\\inetpub\\wwwroot\\UnicomJx\\WorkFlow\\OfficeThingManage\\index.aspx");
ASP.index_aspx.__fileDependencies = dependencies;
ASP.index_aspx.__initialized = true;
}
this.Server.ScriptTimeout = 30000000;
}
protected override void FrameworkInitialize() {
SetStringResourcePointer(ASP.index_aspx.__stringResource, 2295);
this.__BuildControlTree(this);
this.FileDependencies = ASP.index_aspx.__fileDependencies;
this.EnableViewStateMac = true;
}
}
通过上述代码,我们发现class index_aspx继承twoa.module.tool.index(aspx.cs页面类),在这个类里初始化自定义属性或对象,把组成该index.aspx页面
的所有子控件添加到控件集合树中,初始化子控件
ic4c67s_.cmdline:编译该文件相关参数
ic4c67s_.dll:初始化该page页面
ic4c67s_.err:包含当编译出错产生的信息
ic4c67s_.out:包含执行编译命令后的一些输出信息
转载于:https://www.cnblogs.com/bomb_football/archive/2005/11/15/276863.html