我们开发了一个已翻译成36种不同语言的asp.net 4.5 Web应用程序。
我们正在使用标准的.aspx页面和控件以及36种不同语言中的每种语言的相关资源文件。
VS项目在发布之前编译,以创建每种语言的主二进制文件和资源文件二进制文件。 (Bin和.aspx文件)
问题是当我们第一次部署网站时,服务器需要花费10多分钟来编译所有网页。似乎每个页面都被编译了36次(每种语言一次)。
我们正在使用Windows Server 2012,IIS8使用conhost.exe将每个页面编译到以下位置:
C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files
由于有超过100页×36种语言 - 该网站需要一段时间才能编译和启动。
编译过程仅在最初部署站点时或在用户首次点击页面时更新后发生。一旦编译完所有页面,网站功能快速闪亮 - 页面永远不会再次编译,除非更改。
我想知道在设置网站并等待用户点击页面之前是否有任何方法可以在Web服务器上预编译页面?
以下是Web服务器资源监视器的屏幕截图,因为它在用户首次访问该站点时处理所有页面:
服务器多次执行 conhost.exe (每个页面x每种语言)以将.aspx页面编译到 Temporary ASP.NET Files 目录中。
我意识到这种行为是设计的,但如果有办法让它编译网站上的所有页面而不必先将网站设置为实时,那就太棒了。