Как использовать преобразование Web.Config в строках подключения?
В моем текущем проекте у меня есть некоторые строки соединений, которые действительны для локальных машин разработки:
<configuration>
<connectionStrings>
<add name="ApplicationServices"
connectionString="Data Source=localhost;Initial Catalog=MyDB;Integrated Security=SSPI"
</connectionStrings>
....
</configuration>
Как использовать преобразования Web.Config для преобразования из этого выражения в один из действительных для нашего производственного сервера? Производственный сервер выглядит примерно так:
<configuration>
<connectionStrings>
<add name="ApplicationServices"
connectionString="Data Source=IPAddress,Port;Initial Catalog=SomeOtherDB;User ID=TopSecretUsername;Password=SecurePassword"
</connectionStrings>
....
</configuration>
Синтаксис для меня не очевиден, и я полностью отказываюсь от поиска страницы на нем.
Ответы
Ответ 1
Это работает для меня, но я также обнаружил, что это время от времени немного.
Вам нужно будет создать другой файл с именем Web.Config.Release и заполнить его следующим текстом:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="local" connectionString="Data Source=IPAddress,Port;Initial Catalog=SomeOtherDB;User ID=TopSecretUsername;Password=SecurePassword"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
<appSettings>
<add key="default_db_connection" value="local" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
</appSettings>
</configuration>
Ответ 2
Вам не нужно создавать новый файл, он должен находиться в обозревателе решений, расширять Web.config и открывать Web.Release.config.
Скотт Аллан имеет хорошее видео на нем здесь (в разделе Конфигурация и развертывание > Преобразования конфигурации).