2014-01-21 3 views
0

Я никогда не использовал преобразования раньше. Я пытаюсь использовать две разные строки соединения с моим проектом ASP.NET MVC 5.Настройка Web.config для использования другой строки подключения в режиме отладки

Вот краткое изложение моего файла Web.config:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 

    <!-- more --> 

    <connectionStrings> 
    <add name="ChopsticksDBContext" providerName="System.Data.SqlClient" connectionString="Data Source=tcp:s10.winhost.com;Initial Catalog=DB_XXX31_kieXXX;User ID=DB_XXX31_kieXXX_user;Password=XXXX;Integrated Security=False;" /> 
    </connectionStrings> 
</configuration> 

И я добавил следующие теги в мой Web.Debug.config файл:

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 

    <!-- more --> 

    <connectionStrings> 
    <add name="ChopsticksDBContext" 
     providerName="System.Data.SqlClient" 
     connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-KiewicWebsite-20131214161254;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-KiewicWebsite-20131214161254.mdf" 
     xdt:Transform="Replace" xdt:Locator="Match(name)"/> 
    </connectionStrings> 
</configuration> 

Я бегу мой porject в Режим отладки, и я все еще получаю исходное значение для строки подключения.

Любая идея, что может быть неправильным?

ответ

6

Проблема в том, что преобразования не применяются при запуске приложения в режиме отладки. Трансформации применяются только в том случае, если вы публикуете свой веб-сайт. Вы можете проверить это, выполнив публикацию, используя конфигурацию Debug. На опубликованном сайте будет применено преобразование, которое в вашем случае означает, что строка соединения была заменена.

+1

Поскольку я обычно публикую конфигурацию Release, имеет смысл переместить преобразование в Web.Release.config. Спасибо. – kiewic

4

Преобразования действуют только при публикации проекта. (Используйте функцию «publish» в Visual Studio).

При запуске приложения локально, он будет использовать ConnectionString в web.config