Как Посмотреть Параметры Конфигурации в ASP.NET
Существует простой способ раскрыть конфигурацию приложения как конечную точку в вашем приложении ASP.NET Core.
GetDebugView() - это метод расширения IConfigurationRoot, который возвращает строку, описывающую конфигурацию приложения. В этой строке отображаются все ключи конфигурации в вашем приложении, связанное значение и источник значения.Рассмотрим пример «стандартного» вывода метода GetDebugView():
AllowedHosts=* (JsonConfigurationProvider for 'appsettings.json' (Optional))Некоторые особенности вывода:
applicationName=temp (Microsoft.Extensions.Configuration.ChainedConfigurationProvider)
ASPNETCORE_ENVIRONMENT=Development (EnvironmentVariablesConfigurationProvider)
ASPNETCORE_URLS=https://localhost:5001;http://localhost:5000 (EnvironmentVariablesConfigurationProvider)
Logging:
LogLevel:
Default=Information (JsonConfigurationProvider for 'appsettings.json' (Optional))
MySecretValue=TOPSECRET (JsonConfigurationProvider for 'secrets.json' (Optional))
…
1. Параметры конфигурации выдаются в алфавитном порядке ключей.
2. Формат строки:
Ключ=значение (источник значения)Например:
- Ключ
AllowedHosts имеет значение * и предоставлен из файла appsettings.json провайдером JsonConfigurationProvider.- Ключ
MySecretValue имеет значение TOPSECRET и предоставлен из файла пользовательских секретов secrets.json.3. Строка отформатирована по разделам, что видно по ключу
Logging, содержащему раздел LogLevel, в котором находится ключ Default.4. Прочие провайдеры конфигурации:
-
ChainedConfigurationProvider – первоначальные значения конфигурации, задаются хостом,-
EnvironmentVariablesConfigurationProvider – переменные среды,-
CommandLineConfigurationProvider – параметры командной строки.Заметьте, что значения одного провайдера могут переписывать значения другого (например, значения из
appsettings.json заменяются значениями из секретных данных или переменных среды). В выводе GetDebugView() будет присутствовать только конечное значение.Применение
Информация, предоставляемая
GetDebugView(), может быть очень полезной, когда вам нужно отладить проблему конфигурации в вашем приложении. Возможность точно увидеть, откуда берется значение конфигурации, крайне важно, когда что-то работает не так, как вы ожидаете.Один из очевидных подходов - предоставить конечную точку в приложении ASP.NET Core, где вы можете запросить это представление. В следующем примере использован метод
MapGet для предоставления простой конечной точки:app.UseEndpoints(endpoints => {
if(env.IsDevelopment()) {
endpoints.MapGet("/debug-config", ctx => {
var config =
(Configuration as IConfigurationRoot)
.GetDebugView();
return ctx.Response.WriteAsync(config);
});
}
});
Источник: https://andrewlock.net/debugging-configuration-values-in-aspnetcore/