我们正在使用 Azure Web服务 (不是网站)并在其中运行ASP.Net MVC 5.1应用程序。
当我通过Web部署发布网站时,我可以选择“在发布期间预编译”:
当我发布到Azure Web服务时,我无法在任何地方找到此选项。有什么指针吗?
这个想法是预先编译视图,因此首先点击视图不会因为动态编译而受到时间的影响。
我看过Razor Generator,但它不符合我们的需要。我见过很少的其他选择,但在发布阶段编译视图对我们的情况最有意义。
UPD: 仅供我参考,我尝试了David Ebbo suggested和it did not work。
答案 0 :(得分:8)
从Azure服务器上的命令行调用编译器%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe -m /LM/W3SVC/1273337584/ROOT
似乎会导致编译。临时ASP.Net根目录包含一个目录,这增加了其中包含的文件的大小和数量。然后该站点在编译后重新启动。首页开放表现似乎好多了。
如果我在启动脚本中运行它,它不起作用,因为该站点不可用。我想IIS还没有启动。看着做这样的事情Azure: How to execute a startup task delayed?
对于不同的部署,站点ID似乎没有变化。我想可以从IIS获取站点ID,然后使用它,如果它。
看起来就是这样。有更优雅的方式吗?不明白为什么编译和部署视图文件是一件很麻烦的事。