根据我的理解,暂存网站需要重启的唯一原因是,是否存在应用程序设置或连接字符串配置为插槽设置。
虽然这看起来并不总是正确的。我们的一个应用程序将重新启动。我使用了Powershell cmdlet来确保没有插槽设置"隐藏"从门户网站(因为显然这是一件事)。
还有哪些其他因素可以决定在交换期间是否重新启动暂存网站?
(我在this上发布了kudu GitHub repository,但没有收到回复信息)
回应拜伦的回答:
我做了一些非常全面的测试(请参阅my testing repo),我可以执行插槽交换(有和没有预览),无需重置生产或暂存插槽。显然,在Web Apps上没有配置插槽设置。
这是否意味着无法保证重启?我在这里提出的问题是,如果没有重启,IIS'应用程序初始化模块仍然确保应用程序确实已经预热(因为这些事情可能需要几分钟)?
答案 0 :(得分:8)
如果有应用程序设置或连接字符串标记为插槽设置,则在交换之前将始终重新启动暂存插槽。还有一些导致重新启动的其他条件,例如,如此处所述http://ruslany.net/2014/03/azure-web-sites-continuous-deployment-with-staged-publishing/所述启用了持续部署时。重新启动的其他原因是在生产或暂存插槽上启用了站点身份验证。
如果没有重启,则在交换期间不会重新执行appinit模块,因为它仅在初始化工作进程时运行。如果您想确保始终重新启动,那么您可以创建一些虚拟应用程序设置并将其标记为插槽设置。
答案 1 :(得分:0)
据我了解
具有不同值的非广告位设置应要求重新启动源站点 (每次交换都会交换具有不同值的非广告位设置)
插槽设置仅在预览模式下才需要重新启动源站点。 (在没有“预览模式”的情况下,每个插槽都会保留其插槽设置)