我们正在使用Azure Web 服务(不是网站)并在其中运行 ASP.Net MVC 5.1 应用程序。
当我通过 Web-deploy 发布网站时,我可以选择“发布期间预编译”:
当我发布到 Azure Web 服务时,我在任何地方都找不到此选项。有什么指点吗?
这个想法是预编译 View ,因此第一次访问 View 不会因为动态编译而受到时间损失。
我看过Razor Generator但它不适合我们的需求。我见过很少的其他选项,但在发布阶段编译 View 对于我们的案例来说最有意义。
UPD: 仅供引用,我尝试过David Ebbo suggested和 it did not work .
最佳答案
从 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,然后使用它(如果有的话)。
看起来就是这样。还有更优雅的方式吗?不明白为什么编译和部署 View 文件这么麻烦。
关于asp.net-mvc - 在 Azure Web 服务发布期间预编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22018962/