我正在尝试使用 ASP.NET 预编译工具 aspnet_compiler.exe 在部署站点后对其进行编译。
根据书籍定义,在 Web 机器上运行就地预编译应该可以改善首页加载体验。编译工具编译每个 ASP.NET 页面,将编译后的版本存储在%WINDIR%\Microsoft.NET\Framework\v4.0.30319\Temporary
ASP.NET Files 文件夹中,就像每个页面都是第一次从浏览器访问一样。就地预编译可以加快对站点上新部署的 ASP.NET 页面发出的第一个请求,因为它减少了运行时执行此步骤的需要。
出于某种原因,对我来说,它不能按预期的方式工作。
在 Web 机器上手动运行 aspnet_compiler.exe 时:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v /7.1 -p C:\MyPathToWebSite\www
它创建了以下结构结构的文件夹:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\7.1\640c1f87\4be3507b
当我尝试使用浏览器访问网页时,ASP.NET 在同一服务器上的以下文件夹中创建另一个缓存版本:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\7.1\bc8a1bb3\42b014d4
如您所见,预编译在两种情况下(手动和 IIS)都有效,但不知何故,IIS 看不到页面已经预编译和兑现,并试图再次重新编译所有内容。我无法弄清楚缺少什么或做错了什么,因为 aspnet_compiler.exe 用于就地编译的参数选项有限。
到目前为止,我在测试/调查临时 ASP.NET 缓存方面尝试了以下操作:
- 似乎与用户无关,无论用户手动运行什么
- 与源/目标 IP 无关,因为在不同子网的不同服务器上创建了相同的文件夹
任何想法和帮助表示赞赏。