Слот службы приложений Azure - Environment.GetEnvironmentVariable () возвращает ноль - PullRequest
0 голосов
/ 05 сентября 2018

Я только что создал «промежуточный» слот в одной из моих служб приложений Azure.

На портале Azure в разделе «Параметры приложения для этого слота» я создал новый ключ, как показано ниже:

Azure-1

... и сделал его "настройкой слота", так как я не хочу, чтобы это значение менялось местами.

Когда я выполняю свой код в проекте .NET Core, Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") возвращает null. Локально это работает, как только я устанавливаю это значение в переменные окружения моего компьютера.

Я что-то упустил?

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") для получения настройки приложения должно работать в веб-приложении Azure. Я предполагаю, что значение переопределено другими кодами.

Вы можете отладить его следующим образом.

1. Проверьте промежуточный куду (https://yousitename -staging.scm.azurewebsites.net / Env.cshtml ), чтобы проверить переменную среды ASPNETCORE_ENVIRONMENT .

2.Мы также можем удаленная отладка слот с VS.

Ниже приведены мои тестовые шаги:

1.Создать основной проект .net.

2.Создание слота для существующего Webpp и настройка приложения для слота

3. Проверьте переменную среды с помощью инструмента kudu

4.Добавьте следующий код в файл index.chtml.cs

var appsetting = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
ViewData["appseting"] = appsetting;

5. в файле index.chtml измените заголовок на значение настройки приложения

@page
@model IndexModel
@{
    ViewData["Title"] = ViewData["appseting"];
}

6. Опубликовать WebApp в Azure в режиме отладки

7. Проверьте заголовок домашней страницы.

мы также можем удаленно отлаживать, чтобы проверить это. enter image description here

0 голосов
/ 05 сентября 2018

Не знаю, где и как вы используете Environment.GetEnvironmentVariable ("ASPNETCORE_ENVIRONMENT"), но в моем проекте я получаю его по-другому. Я извлекаю его в Startup.cs. Не могли бы вы попробовать нечто подобное и посмотреть, получите ли вы это таким образом?

public Startup(IHostingEnvironment env, ILogger<Startup> logger)
        {

            var envName = env.EnvironmentName;
        }

Это должно дать вам имя env в переменной envName. Если это сработает, я могу помочь вам узнать, как это сделать в других местах вашего кода.

...