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

#iis #web-config #connection-string

#iis #web-config #строка подключения

Вопрос:

Я ищу способ добавить строку подключения в мой файл web.config только тогда, когда строка подключения с таким именем еще не существует.

Например:

У меня есть этот набор в моем текущем файле web.config

 <connectionStrings>
    <add name="myDB" providerName="System.Data.SqlClient" connectionString="Data Source=(localdb)MSSQLLocalDB;Initial Catalog=myDB;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False" />
</connectionStrings>
  

В настройках IIS на рабочем сервере я также добавил строку подключения для «myDB», чтобы у меня не было строки подключения к источнику в источниках.
[Изображение настроек IIS]

Если я сейчас собираюсь перенести свое веб-приложение в IIS, я получаю сообщение о том, что уже есть запись с именем «myDB».

Есть ли способ использовать строку подключения только из файла web.config, когда в настройках сервера IIS еще нет ни одного набора?

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

1. Это невозможно. Вы можете добиться чего-то подобного, используя конфигурацию сборки и преобразование web.config, но для файлов web.config нет директивы «добавить, если не существует».

Ответ №1:

Вы можете удалить строку подключения перед ее добавлением с помощью <remove> тега. Если указанная строка подключения в <remove> теге не существует, ничего не происходит, поэтому это должно работать независимо от того, была ли уже добавлена строка подключения.

 <connectionStrings>
    <remove name="myDB" />
    <add name="myDB" providerName="System.Data.SqlClient" connectionString="Data Source=(localdb)MSSQLLocalDB;Initial Catalog=myDB;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False" />
</connectionStrings>