Получить строку подключения Azure в datalayer

#c# #.net #azure #connection-string #.net-4.6.2

#c# #.net #azure #строка подключения #.net-4.6.2

Вопрос:

Кто-то давным-давно подумал, что было бы неплохо добавить строку connections, жестко закодированную в datalayer нашего веб-api. Из-за этого наследия я не могу удалить этот класс. Этот класс наследует IDbContextFactory, и ему необходимо получить строку подключения, которая теперь жестко запрограммирована. Чтобы сделать это более … динамичным, я хочу использовать для этого строки подключения Azure.

1 Я добавил строку подключения в конфигурацию службы приложений

2 Согласно многим веб-сайтам, я могу просто добавить следующий код для извлечения строки подключения:

 connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
  

Это не работает; это выдает «Ссылка на объект не установлена для экземпляра объекта». ошибка.

Другие говорят, что вам нужно добавить префикс и среду:

 connectionString = Environment.GetEnvironmentVariable("SQLCONNSTR_DefaultConnection");
  

Очевидно, что это тоже не работает. И да, я выбрал sql server в выпадающем списке.

Другая вещь, которую я пробовал, как кто-то предложил, это добавить строку подключения в web.config. И снова; это не сработало.

Полезно знать, что это .NET 4.6.2, поэтому все прекрасные решения для .NET Core 1/2 не будут работать.

Ответ №1:

Сначала вы должны включить ту же строку подключения в web.config с пустым значением ConnectionString. Затем вы можете перезаписать из раздела настроек приложения.

 `<connectionStrings>
    <add name="DefaultConnection" connectionString="" />
    <add name="CMSEntities" connectionString="" 
 providerName="System.Data.EntityClient" />
</connectionStrings>`
  

Для лица основа указать имя_поставщика как система».Данных.Entityclient создан» и настройки выбрали Пользовательское , а не SQL сервер

Комментарии:

1. Когда я это делаю, web.config заменяется файлом, созданным моей версией или сборкой TFS (не могу точно определить, какой именно). Короче говоря: строки подключения исчезают после выпуска. Как это предотвратить?

2. Вы добавили пустую строку подключения в конфигурацию или release config?

3. Я добавил web.config в проект api и добавил строку подключения в файл конфигурации. Я зарегистрировал ее, TFS выполнила некоторую сборку и выпуск, и через Kudu я увидел, что раздел ConnectionStrings исчез.

4. Я не знаком с TFS, я думаю, вам следует пересмотреть свой вопрос. Похоже, это проблема, связанная с TFS.