Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Многие приложения должны использовать разные конфигурации для разных сред. Предположим, что приложение имеет значение конфигурации, определяющее конечную точку, используемую для серверной базы данных. Разработчики приложений используют другую базу данных, отличную от используемой в рабочей среде. Конечная точка базы данных, которую использует приложение, должна измениться при переходе приложения из разработки в рабочую среду.
В конфигурации приложений Azure можно использовать метки для определения разных значений одного и того же ключа. Например, можно определить один ключ с различными значениями для разработки и рабочей среды. Можно указать, какая метка загружается при подключении к конфигурации приложений.
Чтобы продемонстрировать эту функциональность, вы измените веб-приложение, созданное в кратком руководстве: создайте приложение ASP.NET Core с конфигурацией приложений Azure для использования различных параметров конфигурации для разработки и рабочей среды. Выполните краткое руководство, прежде чем продолжить.
Указание метки при добавлении значения конфигурации
На портале Azure перейдите в обозреватель конфигурации и найдите ключ TestApp:Settings:FontColor , созданный в кратком руководстве. Выберите контекстное меню и нажмите кнопку "Добавить значение".
На экране "Добавить значение" введите значение красного цвета и меткуразработки. Оставьте тип контента пустым. Выберите Применить.
Загрузка значений конфигурации с указанной меткой
По умолчанию конфигурация приложений Azure загружает только значения конфигурации без метки. Если вы определили метки для значений конфигурации, необходимо указать метки, которые следует использовать при подключении к конфигурации приложений.
В предыдущем разделе вы создали другое значение конфигурации для среды разработки. Переменная используется HostingEnvironment.EnvironmentName для динамического определения среды, в которой в данный момент выполняется приложение. Дополнительные сведения см. в статье "Использование нескольких сред в ASP.NET Core".
Добавьте ссылку на пространство имен Microsoft.Extensions.Configuration.AzureAppConfiguration , чтобы получить доступ к классам KeyFilter и LabelFilter .
using Microsoft.Extensions.Configuration.AzureAppConfiguration;
Загрузите значения конфигурации с меткой, соответствующей текущей среде, передав имя среды в Select метод:
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddAzureAppConfiguration(options =>
{
string endpoint = Environment.GetEnvironmentVariable("Endpoint");
options.Connect(new Uri(endpoint), new DefaultAzureCredential())
// Load configuration values with no label
.Select(KeyFilter.Any, LabelFilter.Null)
// Override with any configuration values specific to current hosting env
.Select(KeyFilter.Any, builder.Environment.EnvironmentName);
});
Метод Select вызывается два раза. При первом загрузке значений конфигурации без метки. Затем он загружает значения конфигурации с меткой, соответствующей текущей среде. Эти значения, относящиеся к среде, переопределяют любые соответствующие значения без метки. Вам не нужно определять значения среды для каждого ключа. Если ключ не имеет значения с меткой, соответствующей текущей среде, он использует значение без метки.
Тестирование в разных средах
launchSettings.json Откройте файл в каталогеProperties.
config Найдите запись в разделе profiles.
environmentVariables В разделе задайте для переменной ASPNETCORE_ENVIRONMENT значение Production.
С помощью новых значений создайте и запустите приложение.
dotnet build
dotnet run
Перейдите в http://localhost:5000веб-браузер. Вы заметите, что цвет шрифта черный.
Обновите, launchSettings.json чтобы задать для переменной ASPNETCORE_ENVIRONMENT значение Development. Запустите dotnet run еще раз.
Вы заметите, что цвет шрифта теперь красный. Это связано с тем, что приложение теперь использует значение TestApp:Settings:FontColor метки Development . Все остальные значения конфигурации остаются такими же, как и их рабочие значения.
Дальнейшие действия
Конфигурация в ASP.NET Core