首页 > 解决方案 > 在启动时获取 azure 应用服务插槽名称?

问题描述

当 asp.net 核心进程启动时,如何获取我的应用程序服务的插槽名称(生产或暂存)。

HTTP_HOST 环境变量似乎没有在启动时设置,我没有要检查的 http 请求。

标签: asp.netazure-web-app-serviceazure-app-service-plans

解决方案


如果我们想获取主机名,您可以使用环境变量WEBSITE_HOSTNAME来做到这一点。

var hostName = Environment.GetEnvironmentVariable("WEBSITE_HOSTNAME");

如果您在插槽环境中运行它,那么您将获得 value youwebsiteName-slotName.azurewebsites.net。或者,如果您在生产环境中运行它,您将获得 value youwebsiteName.azurewebsites.net

更新:

我们可以使用 appsetting 插槽来做到这一点。

1.转到插槽webApp并配置appsetting并检查插槽设置。

在此处输入图像描述

2.请使用以下代码获取插槽名称。

 string name = string.Empty;
 var sitName = Environment.GetEnvironmentVariable("APPSETTING_WEBSITE_SITE_NAME", EnvironmentVariableTarget.Process);
 var slotName = Environment.GetEnvironmentVariable("APPSETTING_KeyName", EnvironmentVariableTarget.Process); //APPSETTING_Test_Slot
 if (!string.IsNullOrEmpty(slotName))
 {
     name = sitName + "-" + slotName;
 }
 else
 {
     name = sitName;
 }

推荐阅读