在页面请求阶段(页面生命周期之前),ASP.NET如何确定页面是否需要首次解析和编译,或2)重新解析和重新编译由于标记更改(假设“允许此预编译站点可更新”= true)或程序集更改?我可以做出一些非常安全的假设,但有没有人确切知道ASP.NET如何做出这些决定?
ASP.NET页面生命周期: http://msdn.microsoft.com/en-us/library/ms178472.aspx
编辑:因此,“第一次”被确定为ASP.NET网站上的第一个资源请求; soooooo,这不是一个问题,是什么页面或资源(单数)需要解析和编译“第一次”它被请求,而ASP.NET解析和编译所有第一时间任何页面或请求资源。 “重新分析和重新编译”以似乎是“懒惰”的方式发生:当对动态编译文件进行更改时,这会使该文件的先前编译的缓存版本无效;这会触发重新编译它和所有受影响的资源下一次需要代码 - 根据所做的更改,所有文件的1-n可能必须重新编译。
感谢@Mass代表link
答案 0 :(得分:1)
答案 1 :(得分:1)
关于第二点(“由于标记更改而重新解析和重新编译”):
HTTP运行时启动了一个文件系统监视器。您可能希望使用Reflector探索HttpRuntime.StartMonitoringDirectoryRenamesAndBinDirectory()
方法。
监控受
下FCNMode
注册表项设置的影响
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ ASP.NET(x86) HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ ASP.NET(x64)