Кажется, что ваши настройки конфигурации неверны. Будет использована последняя регистрация, которая содержит конкретный ключ.
Например, в вашем файле Program.cs
(при условии, что вы используете ASP.NET Core, в противном случае конструктор Startup.cs
для ASP.NET Core 1.x) вы можете переопределить регистрации (или просто добавить те, которые вам нравятся). когда вы используете метод хоста по умолчанию):
public static IWebHostBuilder BuildWebHost(string[] args) =>
new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.ConfigureAppConfiguration((hostingContext, config) =>
{
var env = hostingContext.HostingEnvironment;
config
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddUserSecrets<Startup>()
.AddEnvironmentVariables()
.AddCommandLine(args);
})
.UseIISIntegration()
.UseStartup<Startup>()
.UseApplicationInsights();
В этом примере были зарегистрированы следующие
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
:
Глобальный конфигурационный файл
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
Конфигурационный файл для конкретной среды, т. Е. appsettings.Development.json
.AddUserSecrets<Startup>()
Пользовательские секреты
.AddEnvironmentVariables()
Переменные среды
.AddCommandLine(args);
Параметры командной строки
При поиске ключа поиск происходит в обратном порядке. Если он определен как параметр командной строки, он переопределит все остальные ключи и значения (из переменной среды, пользовательских секретов, среды и глобального файла).
Итак, поместите наименее важный файл в начале, а самый важный (перезаписывающий) в конце.
В этом случае, если оно определено в ваших пользовательских секретах, оно переопределит значения appsettings.Development.json
и appsettings.json
.
С документы
Источники конфигурации читаются в том порядке, в котором их поставщики конфигурации указаны при запуске. Поставщики конфигурации, описанные в этом разделе, описаны в алфавитном порядке, а не в том порядке, в котором ваш код может их упорядочить. Закажите поставщиков конфигурации в своем коде, чтобы они соответствовали вашим приоритетам для базовых источников конфигурации.
Типичная последовательность поставщиков конфигурации:
- Файлы (appsettings.json, appsettings..json, где находится текущая среда размещения приложения)
- Секреты пользователя (Secret Manager) (только в среде разработки)
- Переменные среды
- Аргументы командной строки
Обычной практикой является размещение поставщика конфигурации командной строки последним в ряду поставщиков, чтобы аргументы командной строки могли переопределять конфигурацию, установленную другими поставщиками.