Разная строка подключения для каждого профиля публикации в VS2010 - PullRequest
4 голосов
/ 18 июня 2010

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

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

1 Ответ

12 голосов
/ 18 июня 2010

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

Чтобы начать с преобразований, щелкните правой кнопкой мыши свой файл web.config в проводнике проекта и выберите «Добавить преобразования конфигурации». Предполагая, что у вас есть 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>

Раскомментируйте этот раздел и измените свойство name на имя строки подключения в базовом файле web.config. Установите для свойства 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.

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

...