Разная строка подключения для каждого профиля публикации в VS2010.

StackOverflow https://stackoverflow.com/questions/3065492

Вопрос

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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top