#asp.net #.net #asp.net-core #iis #appsettings
Вопрос:
Для нашего приложения dotnet у нас есть файл appsettings.json, в котором используются иерархические настройки, такие как:
«mysection»: { «мое свойство»: «моя секретная ценность» }
Этот файл appsettings.json используется для целей разработки.
В рабочем режиме мы используем Azure Keyvault (поскольку наше приложение работает под управлением Azure). В keyvault Секрет определяется с помощью
mysection—моя собственность
Но теперь нам нужно развернуть тот же веб-сервис в IIS. Мы хотели бы определить секретное значение в настройках IIS, но mysection—myproperty или mysection:myproperty не работает.
У вас есть идея, как установить эту иерархию в IIS?
Комментарии:
1.В хранилище ключей Azure иерархические ключи используют — в качестве разделителя. Поставщик конфигурации хранилища ключей Azure автоматически заменяет — на:, когда секреты загружаются в конфигурацию приложения. docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/…
2. Используйте
IConfigurationRoot.GetDebugView()
, чтобы увидеть, как подключена конфигурация: andrewlock.net/debugging-configuration-values-in-aspnetcore3. @abdusco Я знаю, что keyvault использует — в качестве разделителя. Но я ищу решение с конфигурацией внутри IIS
4. О, для этого вы бы использовали переменные среды, и они разделены двойным подчеркиванием
__
5. @abdusco Поместите свой комментарий в качестве ответа, я проверю, насколько правильный ответ. Большое спасибо!
Ответ №1:
При использовании переменных среды подразделы необходимо разделять двойным подчеркиванием __
.
Из документов:
:
Разделитель не работает с иерархическими ключами переменных среды на всех платформах.__
, двойное подчеркивание, является:
- Поддерживается всеми платформами. Например,
:
разделитель не поддерживается Bash, но__
есть.- Автоматически заменяется на
:
Это означает, что вам нужно перейти mysection--myproperty
на
mysection__myproperty
чтобы он был правильно проанализирован.
Кроме того, вы можете использовать IConfigurationRoot.GetDebugView()
, чтобы узнать, откуда берется значение конфигурации.