Промежуточная среда не принимает правильную строку подключения Asp.Net Core

Промежуточная среда не принимает правильную строку подключения.

У меня три среды. Разработка, постановка и выпуск. Мои настройки приложений выглядят так:

{
 "Data": {
  "DefaultConnection": {
  "ConnectionString": "My connection string"
}
},
 "Logging": {
  "IncludeScopes": false,
  "LogLevel": {
  "Default": "Verbose",
  "System": "Information",
  "Microsoft": "Information"
  }
 }
}

У меня есть еще два файла с именами appsettings.Staging.json и appsettings.Release.json. В свойствах проекта я создал два профиля: Staging & Release, оба из которых имеют Hosting: Environment со значением Staging in staging и Release in Release. Он отлично работает в VS, но когда я загружаю его в Azure, он всегда использует настройки приложения по умолчанию с моей строкой подключения к локальному хосту вместо моей онлайн-базы данных. Что я делаю не так?


person Sknecht    schedule 16.03.2016    source источник


Ответы (1)


Вам не следует хранить строку подключения, если она содержит конфиденциальные данные в текстовом файле, и следует установить значение непосредственно в AppSettings в Azure для рабочей среды (или посмотреть что-то вроде Key Vault), чтобы установить значение. Я бы рекомендовал прочитать https://docs.asp.net/en/latest/security/app-secrets.html и https://docs.asp.net/en/latest/fundamentals/configuration.html.

Чтобы решить проблему чтения значений из правильного файла настроек, см. ниже.

Вам необходимо установить значение среды в Azure. На портале Azure в своем веб-приложении перейдите к All Settings->Application Settings->AppSettings и добавьте параметр ASPNET_ENV или Hosting:Environment со значением Staging (или любую другую интересующую вас среду.

Для чтения файла appsettings.Staging.json вы должны сделать что-то вроде: установить промежуточную среду

person jsturtevant    schedule 18.03.2016