大约一年前,Azure Web App插槽交换是“无缝的” - 一旦完成,新实例就会热身接受新请求而不会有任何延迟。
现在,当我将插槽从STAGING
交换到PRODUCTION
时,即使在针对STAGING
运行测试以预热应用程序之后,交换结果也会产生许多预热时间。
这怎么可能改变了,我该怎么做才能确保我的应用在交换过程中仍然可以100%访问?
答案 0 :(得分:3)
您是否对插槽配置进行了更改?
有些事情我注意到在生产热身之后不会立即做出交换,如果你想一想它们会有意义:
确保您在web.config中设置了applicationInitialization设置,以强制热身在交换之前点击您网站上的网址:
<system.webserver>
<applicationInitialization>
<add initializationPage="/" />
</applicationInitialization>
</system.webServer>
答案 1 :(得分:1)
如果您需要预热超过网络应用的根目录,请尝试自定义预热配置
答案 2 :(得分:1)
这怎么可能改变了,我该怎么做才能确保我的应用在交换过程中仍然可以100%访问?
据我所知,通常警告操作应该在暂存插槽中完成,然后再将其交换到生产环境中。这可以消除部署Web应用程序时的停机时间。流量重定向是无缝的,并且交换操作不会丢弃任何请求。 Ruslan写的this blog解释了当一个临时插槽换成生产时发生的一系列动作,你可以阅读它。正如加勒特所说,如果它没有完全热身,custom warm-up actions可能会有所帮助。