Параметры приложения Azure не перекрывают мои значения файла appsettings.json

Я попытался добавить DefaultConnection из моего файла appsettings.json в Azure Application Settings, но Azure не переопределит строку подключения.

введите описание изображения здесь

введите описание изображения здесь

В любой статье или блоге, которую я могу найти, говорится, что все, что мне нужно сделать, это добавить имя строки подключения, как указано в файле appsettings.json, и Azure должен сделать все остальное (например, https://tehremo.wordpress.com/2016/10/07/override-connection-strings-app-settings-in-asp-net-core-and-azure-app-service/), однако, когда приложение опубликовано, оно использует мою локальную строку соединения.

Мой файл Startup.cs выглядит следующим образом:

введите описание изображения здесь введите описание изображения здесь

ПРИМЕЧАНИЕ. Я публикую, используя непрерывную доставку VSTS, с задачей выпуска Deploy Azure App Service.

Ответ 1

У меня была аналогичная проблема (проблема была связана с типом строки подключения PostgreSQL, мне пришлось изменить ее на пользовательский), и теперь это работает для меня, поэтому это фрагменты:

  • Это мой файл appsettings.json. У меня есть значение для "Psql", установленного в моем appsettings.Development.json, но в appsettings.json он остается пустым. введите описание изображения здесь
  • Это настройки, установленные на портале Azure. Обратите внимание, что есть два способа переопределить строку подключения. введите описание изображения здесь
  • Это часть моего файла Startup.cs. Обратите внимание на порядок использования параметров в конструкторе Startup и способ получения строки подключения в методе ConfigureServices (GetConnectionString - стандартный метод расширения). введите описание изображения здесь

Дополнительная информация из моих комментариев ниже:

Azure GUI (строки подключения, настройки приложения) использует внутренние переменные среды, поэтому appsettings.json останется неизменным.

Если необходимо, чтобы значение appsettings.json было перезаписано во время действия VSTS release (до того, как оно будет опубликовано в Azure), можно использовать инструменты сборки и выпуска Corin ALM Corner Build and Release Tools. Вот ссылки на Colin ALM Corner Build and Release Tools и учебник.

Ответ 2

Спасибо @pasul, ваша помощь была высоко оценена и помогла мне найти альтернативное решение. Для развертывания с использованием задачи VSTS и замены параметров приложения вам нужно будет добавить переменные в задачу выпуска и передать в задание json файл для замены переменных.

Когда в задаче выпуска Deployment Azure App вы увидите раздел "Преобразование файлов и переменная замена". Здесь вы укажете путь к json файлу, который вы хотите изменить значения переменных.

введите описание изображения здесь

Затем вам нужно щелкнуть по кнопке параметров в среде выпуска. Вы увидите параметр для настройки переменных во всплывающем меню.

введите описание изображения здесь

Здесь вы можете добавить свойство json, которое хотите изменить как переменную. В моем случае строка подключения. Это будет выглядеть следующим образом:

введите описание изображения здесь

"ConnectionStrings.DefaultConnection"

Затем просто введите строковое значение соединения. Затем VSTS заменяет эти значения для вас при развертывании.