azure - 交换后应用服务上的 WEBSITE_HOSTNAME 值已过时

标签 azure azure-web-app-service

我有一个带有生产槽和暂存槽的 Azure 应用服务。我正在使用虚拟目录运行几个网站。我设置了任务,以便在每个网站预热时通知我。我使用 WEBSITE_HOSTNAME 环境变量来确定电子邮件的生成位置并将 Prod/Staging 附加到主题。我还在正文中提供了汇编版本,以查看正在预热哪些代码。

string websiteHostName = Environment.GetEnvironmentVariable("WEBSITE_HOSTNAME");

当我将“版本 2”部署到暂存时,我收到的电子邮件正确附加了“/staging”,正文中包含“版本 2”。当我交换插槽时,我收到正文中带有“/prod”和“版本 1”的电子邮件。

当我检查生产槽的 KUDU 时,WEBSITE_HOSTNAME 是(站点名称)-staging.azurewebsites.net,暂存槽的值是(站点名称).azurewebsites.net。如果我手动重新启动暂存槽,则 WEBSITE_HOSTNAME 值将更新为 -staging.azurewebsites.net,并且我从预热过程中收到的电子邮件具有“/staging”和“版本 1”,这是我对预热过程的期望当它切换到暂存时。

我已经尝试使用部署槽,但交换无法正常工作,因为在应用程序完全预热之前交换被标记为已完成,这导致用户停机。

生产槽切换到暂存槽后重新启动的原因是什么?发生这种情况时是否应该更新 WEBSITE_HOSTNAME 值?我很困惑,因为手动重新启动会更新该值。

有没有办法阻止应用程序在切换到暂存状态时重新启动?

或者,有没有办法获取 HTTP_HOST 变量值?

最佳答案

交换后 WEBSITE_HOSTNAME 不正确是一个已知问题,我们正在努力解决它。解决方法是重新启动,但这并不完美。另一种解决方法是应用程序忽略该环境变量并依赖实际传入 header HTTP_HOST。

关于azure - 交换后应用服务上的 WEBSITE_HOSTNAME 值已过时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56705331/

相关文章:

azure - 数据工厂 - Foreach 事件 : run in parallel but sequentially

Azure函数错误: The operation has timed out

php - Azure GitHub 部署问题

azure - Azure SQL 数据库 v12 : the database is always slow on the first insert or delete execution, 出现奇怪问题,但 V11 则不然

node.js - Azure Web应用程序中lwip的node-gyp重建问题: fatal error C1083: Cannot open include file: 'nan.h' : No such file or directory

azure - Azure Web App反向代理背后的Sonarqube 6.3.1 : 401 on API post requests/Wrong CSFR in request

适用于容器的 Azure Web 应用程序 : how to password protect

azure - 如何使用 Azure 数据工厂将 CSV 转换为嵌套 JSON 数组?

azure - 通过 Microsoft 登录个人和任何 Azure AD

azure - Azure 中的货币设置