我正在一个网站上工作,我想在该网站上使用就地编译以使第一次点击速度更快。我想使用ClientBuildManager
. CompileFile
进行就地编译的方法,以便我可以控制编译过程。由于各种原因,这是编译本网站的理想方式。
为什么 IIS 构建到“临时 ASP.NET 文件”下的不同子目录?
当我通过ClientBuildManager
. CompileFile
为此目的构建的 exe 中的方法,输出将转到“临时 ASP.NET 文件”下的子目录。但是,当网站稍后被点击时,IIS 会在“临时 ASP.NET 文件”下的不同子目录下重建控件,从而使之前的就地编译变得毫无价值。
注意:在“临时 ASP.NET 文件”下的就地编译期间创建的程序集被单独保留(仍然存在)。
注意:就地编译程序集文件夹和 IIS 生成的程序集文件夹都在同一个“临时 ASP.NET 文件”目录下。
例子:
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\2ba591b9\[就地编译文件夹名称]
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\2ba591b9\[ IIS 为网站生成的程序集]\
ClientBuildManager
. CompileFile
配置
var buildParameter = new ClientBuildManagerParameter
{
PrecompilationFlags = PrecompilationFlags.Default,
};
var clientBuildManager = new ClientBuildManager(
RootVirtualPath, RootPhysicalPath, null, buildParameter);
...
clientBuildManager.CompileFile(relativeVirtualPath, callback);
RootVirtualPath
默认网站的“” 在哪里。RootPhysicalPath
指向网站磁盘上的位置。 relativeVirtualPath
格式为“~/myFile.aspx”。回调用于跟踪进度。