#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>