【发布时间】:2017-01-19 14:07:13
【问题描述】:
我正在使用 ASP.NET MVC 5 和 Azure Premium 应用服务,并将 AlwaysRunning 选项设置为“开启”。
我为 Web 应用程序创建了一个部署槽,部署了我的新版本,打开了槽 URL,一切都又快又稳定。我切换到生产环境,切换操作完成后,Web 应用程序很慢,就像我手动部署到 PROD 一样。我不得不等待超过一分钟才能让我的应用程序再次运行。根据我读到的内容,我认为应用程序会在交换后预热,但没有成功。
为什么换了这么慢?甚至像身份验证表单一样没有命中数据库的页面。
更新:切换到 V2 计划(SSD 存储)后,应用会在不到 2 分钟的时间内重新启动 :)
【问题讨论】:
-
几年来,我们一直在使用与您相同的流程。我们以前使用这种方法的成功率接近 100%。我们会部署到一个 pre-prod 插槽,对其进行预热,与生产交换,并且生产是温暖的。自去年年底以来,它很少再起作用了。我们已经尝试了几乎所有事情,并且几个月来一直在与微软撞墙,但他们向我们保证,他们最终没有改变。不用说它非常令人沮丧。我们也试过swap with preview,但结果不一致。有时有效,有时无效。
-
它对我们来说工作正常,在我们交换后它运行良好。由于 SSD 存储,当我们切换到 V2 计划时,一切都变得更好了。我们不再使用 applicationInitialization 标签,因为我们的缓存在应用程序启动时被加载,即使没有人使用它。这是我们的部署过程:我们首先部署到 pre-prod 环境(部署槽),我们重新启动部署槽,一分钟后我们将其交换到 prod。一切都很好。
-
非常感谢弗朗西斯科提供的信息。我们会试一试。
标签: asp.net-mvc azure warm-up azure-deployment-slots