【发布时间】:2019-06-21 14:25:59
【问题描述】:
我有一个带有生产槽和暂存槽的 Azure 应用服务。我正在使用虚拟目录运行几个网站。我有任务设置以在每个网站预热时通知我。我正在使用 WEBSITE_HOSTNAME 环境变量来确定生成电子邮件的位置并将 Prod/Staging 附加到主题。我在正文中也有汇编版本,以查看正在预热的代码。
string websiteHostName = Environment.GetEnvironmentVariable("WEBSITE_HOSTNAME");
当我将“版本 2”部署到暂存时,我会收到正确附加了“/暂存”且正文中包含“版本 2”的电子邮件。当我交换插槽时,我会收到正文中带有“/prod”和“版本 1”的电子邮件。
当我检查 KUDU 的生产槽时,WEBSITE_HOSTNAME 是(站点名称)-staging.azurewebsites.net,暂存槽的值是(站点名称).azurewebsites.net。如果我手动重新启动暂存槽,则 WEBSITE_HOSTNAME 值将更新为 -staging.azurewebsites.net 并且我从热身过程收到的电子邮件具有“/staging”和“版本 1”,这是我对热身过程的期望当它被交换到暂存时。
我已经尝试使用部署槽,但交换无法正常工作,因为在应用完全预热之前交换被标记为已完成,这导致用户停机。
生产槽在切换到暂存时重启的原因是什么?发生这种情况时是否应该更新 WEBSITE_HOSTNAME 值?我很困惑,因为手动重启会更新值。
有没有办法防止应用在切换到暂存时重新启动?
或者,有没有办法获取 HTTP_HOST 变量值?
【问题讨论】:
标签: azure azure-web-app-service