Веб-приложение Azure для контейнеров (aspnetcore 2.2), не считывающих значения параметров приложения Azure при запуске - PullRequest
0 голосов
/ 23 января 2019

У меня есть веб-приложение для контейнеров, работающих в Azure, которое я работаю локально с локальным файлом appsettings.

После развертывания в Azure я хочу, чтобы контейнер извлекал значения настроек приложения из настроек Azure. Они устанавливаются через AzureDevops и отображаются правильно при проверке портала.

Однако сайт не извлекает значения параметров приложения из Azure после развертывания. Он использует те из файла. Я использую имена с двойным подчеркиванием, как указано.

Я создал testcontroller для вывода значений настроек приложения. Это фрагмент того, что выводит тестовое представление:

Build version: 2019.1.23.1
Location: local
Database__DatabaseConnectionString: Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=application;Data Source=.
---
-------
Env vars: Key WEBSITE_AUTH_SIGNING_KEY Value ASDS*(&*&*(SDSD05C29
Key DOTNET_RUNNING_IN_CONTAINER Value true
Key WEBSITE_ROLE_INSTANCE_ID Value 0
Key Database__DatabaseConnectionString Value Server=tcp:servername01.database.windows.net,1433;Initial Catalog=application;Persist Security Info=False;User ID=applicationUser;Password=password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
Key APPSETTING_Database__DatabaseConnectionString Value Server=tcp:servername01.database.windows.net,1433;Initial Catalog=application;Persist Security Info=False;User ID=applicationUser;Password=password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

Как видно, приложение Database__DatabaseConnectionString должно использоваться приложением. Но это не так.

В чем здесь может быть проблема? Это должна быть стандартная функциональность в соответствии с документацией aspnetcore.

1 Ответ

0 голосов
/ 30 января 2019

Оказывается, это была ошибка в приложении. У рассматриваемых контроллеров есть встроенные IOptions, внедряемые в конструктор. К сожалению, один из контроллеров вел себя по-разному, поскольку вместо него вводился конкретный экземпляр. Поскольку этот объект не был правильно инициализирован в Startup.cs, это приводит к передаче пустых значений в конструктор.

Наконец, когда были найдены пустые значения, это означает, что были использованы значения по умолчанию appsettings.json.

Исправив вышеуказанную ошибку (убедившись, что все контроллеры используют одинаковые значения IOptions), значения параметров приложения Azure выбираются и корректно используются приложением во время запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...