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