在交换期间防止暂存站点重新启动

问题描述 投票:5回答:2

根据我的理解,暂存站点需要重新启动的唯一原因是,是否存在应用程序设置或连接字符串配置为插槽设置。

虽然这似乎并非总是如此。我们的一个应用程序将重新启动。我使用了Powershell cmdlet来确保Portal中没有“隐藏”的插槽设置(因为显然这是一件事)。

还有哪些其他因素可以确定在交换期间是否重新启动暂存站点?

(我在this上发布了kudu GitHub repository,但没有收到回复)

EDIT:

回应拜伦的回答:

我做了一些非常彻底的测试(请参阅my testing repo),我可以执行插槽交换(有和没有预览),无需生产或暂存槽重新启动。这显然没有在Web Apps上配置插槽设置。

这是否意味着无法保证重启?我在这里提出的问题是,如果没有重启,IIS的应用程序初始化模块仍然确保应用程序确实已经预热(因为这些事情可能需要几分钟)?

azure-web-sites azure-web-app-service kudu azure-app-service-plans
2个回答
8
投票

如果应用程序设置或连接字符串标记为插槽设置,则在交换之前将始终重新启动暂存插槽。还有一些其他条件会导致重新启动,例如,如此处所述启用连续部署时http://ruslany.net/2014/03/azure-web-sites-continuous-deployment-with-staged-publishing/。重新启动的其他原因是在生产或暂存插槽上启用了站点身份验证。

如果没有重新启动,则在交换期间不会重新执行appinit模块,因为它仅在初始化工作进程时运行。如果您想确保始终重新启动,那么您可以创建一些虚拟应用程序设置并将其标记为插槽设置。


0
投票

据我所知

具有不同值的非插槽设置应该需要重新启动源站点(在每次交换时交换具有不同值的非插槽设置)

插槽设置应仅在处于预览模式时才需要重新启动源站点。 (没有预览模式,每个插槽都保留其插槽设置)

© www.soinside.com 2019 - 2024. All rights reserved.