Azure Staging<> Production Swap不是无缝的 - 需要再次热身

时间:2016-11-02 01:24:52

标签: azure azure-web-sites azure-web-app-service

大约一年前,Azure Web App插槽交换是“无缝的” - 一旦完成,新实例就会热身接受新请求而不会有任何延迟。

现在,当我将插槽从STAGING交换到PRODUCTION时,即使在针对STAGING运行测试以预热应用程序之后,交换结果也会产生许多预热时间。

这怎么可能改变了,我该怎么做才能确保我的应用在交换过程中仍然可以100%访问?

3 个答案:

答案 0 :(得分:3)

您是否对插槽配置进行了更改?

有些事情我注意到在生产热身之后不会立即做出交换,如果你想一想它们会有意义:

  • 在"应用程序设置"下的每个广告位配置中,如果应用设置或连接字符串对于具有'插槽配置的任何设置不完全相同复选框是UNchecked,然后在那些情况下它会进行预热,然后交换,然后必须再次热身,因为它似乎在交换后更新这些设置(所以看起来如此)。
    • 为确保您的设置正确无误,如果您正在进行手动交换,请检查天蓝色门户网站是否说明没有警告"确保系统不必做任何与众不同的事情
  • 在手动交换中,源和目标选择很重要。这是因为源插槽首先使用目标插槽配置进行预热(因此在预热期间它将变慢)然后交换发生,这意味着源成为目标,应该是立即的。然后再次进行预热以使原始源恢复到原始设置。因此,如果您为源选择了错误的项目,则预热时间将为DOUBLE。
  • 确保您在web.config中设置了applicationInitialization设置,以强制热身在交换之前点击您网站上的网址:

    <system.webserver> <applicationInitialization> <add initializationPage="/" /> </applicationInitialization> </system.webServer>

答案 1 :(得分:1)

如果您需要预热超过网络应用的根目录,请尝试自定义预热配置

https://azure.microsoft.com/en-us/documentation/articles/web-sites-staged-publishing/#custom-warm-up-before-swap

答案 2 :(得分:1)

  

这怎么可能改变了,我该怎么做才能确保我的应用在交换过程中仍然可以100%访问?

据我所知,通常警告操作应该在暂存插槽中完成,然后再将其交换到生产环境中。这可以消除部署Web应用程序时的停机时间。流量重定向是无缝的,并且交换操作不会丢弃任何请求。 Ruslan写的this blog解释了当一个临时插槽换成生产时发生的一系列动作,你可以阅读它。正如加勒特所说,如果它没有完全热身,custom warm-up actions可能会有所帮助。