Получить имя слота службы приложений Azure при запуске? - PullRequest
0 голосов
/ 03 мая 2018

Как я могу получить имя слота (производственного или промежуточного) моей службы приложений при запуске основного процесса asp.net.

Переменная среды HTTP_HOST, по-видимому, не установлена ​​при запуске, и у меня нет http-запроса для проверки.

1 Ответ

0 голосов
/ 03 мая 2018

Если мы хотим получить имя хоста, вы можете использовать переменную окружения WEBSITE_HOSTNAME , чтобы сделать это.

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

Если вы запустите его в среде слотов, вы получите значение youwebsiteName-slotName.azurewebsites.net. Или, если вы запустите его в производственной среде, вы получите значение youwebsiteName.azurewebsites.net.

Обновление:

Мы могли бы использовать слот appsetting для этого.

1.Зайдите в слот webApp и настройте настройки приложения и проверьте настройки слота.

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