ASP.NET начинается основной проект порядок выполнения по умолчанию: хост-хост — > конфигурация чтения — > настройки журнала — > регистрационная служба (DI) — > добавление промежуточного программного обеспечения — > прослушивание веб-хоста — > запуск фоновой работы.
Загрузка конфигурации и чтение находятся в самом начале процесса запуска. Профиль Microsoft в ASP.NET Core:Вход по гиперссылке виден.
Обзор:
Метод Host.CreateDefaultBuilder, предоставите конфигурацию приложения по умолчанию в следующем порядке:
- ChainedConfigurationProvider: Добавьте существующий в качестве источника. В стандартном примере конфигурации добавьте конфигурацию хоста и укажите её как первый источник для конфигурации приложения.
- Используй appsettings.json appsettings.json.
- Используйте провайдера конфигурации JSON через настройки приложения: — предоставил JSON. Например, настройки приложения. Production.json и настройки приложения. Development.json。
- Секреты приложения при работе приложения в окружающей среде.
- Используйте провайдеры конфигурации переменных среды для предоставления через переменные среды.
- Использование командной строки предоставляется через параметры командной строки.
Исходный код следующий:
Адрес исходного кода:Вход по гиперссылке виден.
Как видно из кода, приоритет конфигурации при получении программ следующий:appsettings.json -> appsettings.environment.json -> переменные среды -> аргументы командной строки。 Мы тестируем по приоритету.
Создайте новый консольный метод для возврата всей конфигурационной информации, код выглядит следующим образом:
Сначала appsettings.json конфигурационный файл следующим образом:
Новые настройки приложения. Test.json конфигурацию следующим образом:
Попробуйте начать проект и посмотреть конфигурацию WebConfig:Name и WebConfig:Date, как показано на следующем изображении:
{"Key":"WebConfig:Name","Value":"itsvse.com"},{"Key":"WebConfig:Date","Value":"2021"}
Найти свойства ->launchSettings.jsonМодифицировать конфигурацию среды ASPNETCORE_ENVIRONMENT в Тест, следующим образом:
В это время процедураПочитаю настройки приложения. Test.json конфигурация, попытаться перезапустить проект, найтиWebConfig:Name 已经覆盖了, как показано на рисунке ниже:
{"Key":"WebConfig:Name","Value":"itsvse.com test"},{"Key":"WebConfig:Date","Value":"2021"}
Измените launchSettings.json файл снова и установите значение WebConfig:Name через переменную окружения, код выглядит следующим образом:
Примечание: Измените значение WebConfig:Name для переменной окружения, имя переменной: WebConfig__Name (Середина разделена двойным акцентом)
Попробуйте перезапустить проект и найти значение WebConfig:Name,Она была перезаписана значением, установленным переменной среды, как показано на рисунке ниже:
Попробуйте изменить значение по умолчанию через командную строку и запустите команду следующим образом:
Как показано ниже:
Проверьте приоритет ключей конфигурации на практике — и всё.
|