2

我有一个相当大的网站试图解决第一次命中的处罚。尝试使用aspnet_compiler进行预编译似乎并没有像我想象的那样工作。

我运行命令如下:

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
aspnet_compiler -p "C:\Development\Source\WEB" -v / "C:\Staging" -c

Web.Config 设置如下(不确定这是否重要?)

<compilation debug="false" strict="false" batch="true" explicit="true" targetFramework="4.0" optimizeCompilations="true">

IIS 应用程序池(由于第三方引用,无法更改值)

  • .NET 框架版本:v4.0
  • 启用 32 位应用程序:False
  • 托管管道模式:经典

运行 Windows Server 2008R2

当我导航到站点 (C:\Staging) 的第一页(登录)时,我得到了 appx. 60 秒预热,我可以看到临时目录C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files中的文件缓存/编译

我的假设是,通过使用 aspnet_compiler,我将能够绕过这个预热循环的需要。是否有明显的我遗漏的东西或其他一些预编译的方法,这样我们就没有第一次的惩罚?

这似乎每天都在发生(没有真正的证据),可能在应用程序池回收时发生?再次,寻找解决方法。

谢谢你的帮助

4

1 回答 1

0

你在正确的轨道上;我使用 aspnet_compiler 工具将我们的网站启动时间从 ~120 秒更改为 8 秒。它非常适合具有大量 aspx/ascx 文件的复杂网站。

我使用如下命令:%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler -v / -p C:\Projects\branches\demo3\KenticoCMS -fixednames C:\Projects\branches\demo3precomp

此命令用于在其自己的域上构建网站,并位于 C:\Projects\branches\demo3\KenticoCMS 目录中。我正在输出到 C:\Projects\branches\demo3precomp 目录,并将其内容部署到服务器。

于 2014-11-08T21:49:56.160 回答