【问题标题】:How to precompile Web application prior to publishing on Azure Cloud Services如何在 Azure 云服务上发布之前预编译 Web 应用程序
【发布时间】:2014-03-28 12:07:16
【问题描述】:

我在云服务上初始加载我的 MVC3 .NET4.5 应用程序时速度非常慢,当然当池每 20 分钟回收一次时。

现在我可以扩展回收,但在我看来,简单地在本地预编译所有内容,然后打包并发布到云服务会是一个更好的解决方案。

如何在本地进行预编译,然后将预编译好的代码打包发布?

谢谢

【问题讨论】:

    标签: asp.net-mvc-3 asp.net-mvc-4 azure asp.net-mvc-5 azure-web-roles


    【解决方案1】:

    问题是 Azure SDK 附带的默认 MSBuild 脚本不将预编译结果包含到服务包中。所以预编译应用程序不是问题,但打包预编译结果是一个问题。一种可能的解决方案是就地预编译应用程序,如here 所述。

    20 分钟的空闲超时对于 Web 角色来说意义不大,因此值得简单地禁用它。您将面临的下一件事是,在第一个请求到达时启动 Web 应用程序仍然需要一些时间,因为必须从磁盘加载大量代码并进行 JIT 编译,解决方法是使用 IIS 的“预热”功能或者只是从内部角色OnStart() 向“localhost”发送请求。

    【讨论】:

    • 谢谢。令人惊讶的是,预编译并不简单,对我来说似乎很合乎逻辑。也许 MS 认为本地预编译将针对本地操作系统,这不一定与部署“osFamily”相同,因此最好将其保留为 IL 代码。目前我已经实施了一个保持活动状态的监视器,从一个外部监视器站点,在相关操作上,似乎正在工作。你能告诉我更多关于“热身”/OnStart() 的东西....不是我很了解的东西。再次感谢。
    • @SamJolly:从未尝试过“热身”,这里在blogs.iis.net/thomad/archive/2009/10/14/… 的大量其他帖子中进行了描述。带有OnStart() 的部分非常简单——您可以使用WebRequest 向在同一台机器上运行的IIS 发送HTTP 请求。
    猜你喜欢
    • 2014-03-27
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多