ASP.NET页面请求阶段...

问题描述:

在页面请求阶段(页面生命周期之前),ASP.NET如何确定页面是否需要第一次被解析和编译,或者2)由于标记更改(假设“允许此预编译站点可更新”= true)或程序集更改而重新解析并重新编译?我可以做出一些非常安全的假设,但是有谁知道ASP.NET究竟如何做出这些决定?ASP.NET页面请求阶段...

ASP.NET页面生命周期: http://msdn.microsoft.com/en-us/library/ms178472.aspx

编辑:所以,“第一时间”被确定为关闭ASP.NET网站上的第一个资源请求; soooooo,这不是一个页面或资源(单数)需要被解析和编译的问题,而是需要“第一次”解析和编译,而ASP.NET解析和编译所有第一次任何页面或请求的资源。 “Reparse and recompile”以一种“懒惰”的方式出现:当对动态编译文件进行更改时,会使该文件以前编译的缓存版本无效;这会触发它的重新编译和所有受影响的资源。下一次需要代码 - 根据所做的更改,所有文件的1-n可能需要重新编译。

感谢@Mass为link

+0

.. ..欢迎:-) –

+0

[缓存ASP.NET页面](http://msdn.microsoft.com/en-us/library/06bh14hk%28v=vs.100%29.aspx) – AminM

,你可以找到你需要在下面的链接中的所有答案:

在编制第一个请求

重新编译就更改

编译输出

http://msdn.microsoft.com/en-us/library/ms366723.aspx

+0

我想我真的很期待内部的;换句话说,哈希用于检查更改的资源对asp.net缓存以确定更改?是时间戳还是其他标准,还是这些的组合?无论如何,我会接受这个答案。谢谢。 – gangelo

关于第二点(“重新解析和重新编译由于标记变化”):

有由HTTP运行时开始一个文件系统监视器。您可能想要使用反射器来探索HttpRuntime.StartMonitoringDirectoryRenamesAndBinDirectory()方法。

监测由FCNMode注册表项设置下

HKEY_LOCAL_MACHINE \ SOFTWARE \微软\ ASP.NET(86) HKEY_LOCAL_MACHINE \ SOFTWARE影响\ Wow6432Node \微软\ ASP.NET(64)

+0

很酷的豆类,这些都是我正在寻找的细节。 – gangelo