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

时间:2018-05-03 05:49:05

标签: asp.net azure-web-sites azure-app-service-plans

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

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

1 个答案:

答案 0 :(得分:4)

如果我们想获取主机名,您可以使用环境变量 WEBSITE_HOSTNAME 来执行此操作。

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

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

<强>更新

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

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

enter image description here

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;
 }