在启动时获取 azure 应用服务插槽名称?

Cle*_*ent 5 asp.net azure-app-service-plans azure-web-app-service

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

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

Tom*_*SFT 5

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

var hostName = Environment.GetEnvironmentVariable("WEBSITE_HOSTNAME");
Run Code Online (Sandbox Code Playgroud)

如果您在 slot 环境中运行它,那么您将获得 value youwebsiteName-slotName.azurewebsites.net。或者,如果您在生产环境中运行它,您将获得价值 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;
 }
Run Code Online (Sandbox Code Playgroud)