3

Можно ли изменить строку подключения (или только сервер), опираясь на выбранный профиль публикации в Интернете? Может быть, используя Web.config transform или как-нибудь еще?Разная строка соединения для каждого профиля публикации в VS2010

Я имею в виду профиль «Тест» подключение изменение строки «MyConnString» (в опубликованной Web.config) в "Data Source='example.com,14333;..." и профильный «Производство» - в "Data Source=./SQLExpress;..."

ответ

12

Это именно то, что веб-конфигурации преобразования были созданы. Ссылка, которую вы предоставили в своем посте, имеет пошаговое руководство для этого специально для строк подключения.

Чтобы начать с преобразований, щелкните правой кнопкой мыши файл web.config в проводнике проекта и выберите «Добавить Config Transforms». Предполагая, что у вас есть ConfigA и ConfigB в конфигурации вашего решения, будут добавлены два новых файла: Web.ConfigA.config и Web.ConfigB.config.

Если вы откроете эти новые файлы, они будут довольно пустыми, за исключением кучи комментариев. На самом деле они содержат пример строки подключения в них, которые вы можете использовать, хотя - это выглядит следующим образом:

<connectionStrings> 
    <add name="MyDB" 
    connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> 
</connectionStrings> 

раскомментировать этот раздел и изменить свойство «имя» на имя строки подключения в базовой сети. файл конфигурации. Установите для свойства connectionString значение, которое вы хотите использовать для ConfigA. Так, например:

<connectionStrings> 
    <add name="myConnectionString" 
    connectionString="Data Source=ConfigASqlServer;Initial Catalog=ConfigADatabase;Integrated Security=True" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> 
</connectionStrings> 

Повторите процесс для файла Web.ConfigB.config, с нужной строкой подключения для ConfigB.

Теперь, когда вы используете команду «Опубликовать» в визуальной студии, она автоматически преобразует базовый файл web.config и устанавливает атрибут «connectionString» для любой конфигурации, в которой вы находитесь при публикации.

+0

Я действительно не могу понять, как использовать преобразование Web.config. Не могли бы вы предложить краткий пример того, как изменить строку соединения на CS_A для профиля A и CS_B для B? – abatishchev

+0

Конечно, я уточню свой ответ. – womp

+0

Большое спасибо! – abatishchev