Можно ли связать преобразование Web.config с профилем публикации? - PullRequest
8 голосов
/ 21 июня 2010

В настоящее время я могу легко настроить преобразование Web.config на основе конфигурации сборки, например, использовать connectionString=server;.. для Debug и connectionString=./SQLExpress;.. для Release.

Но возможно ли это сделать в Интернете.преобразование конфигурации на основе профиля веб-публикации?Т.е. используйте connectionString=server1;.. для профиля Server1 и connectionString=server2;.. для Server2?

Ответы [ 3 ]

5 голосов
/ 30 июня 2010

Мы сохраняем всю конфигурацию, относящуюся к машине / профилю, в отдельных файлах конфигурации, а затем используем configSource для их включения следующим образом ...

    <connectionStrings configSource="cstrings.config"/>

Таким образом, Web.config такой же и не требует никакихпреобразования.Мы делаем это для строк подключения, настроек smtp и настроек приложения.

Мы контролируем версии Web.config и «машинно-зависимые» файлы, такие как cstrings.config.production, cstrings.config.staging и т. Д.

Если у вас есть такая структура, вы можете легко создавать изображения для разных профилей.У нас есть сценарии развертывания на каждом компьютере, которые читают переменную среды и осуществляют соответствующее развертывание.Например, сценарий сборки промежуточного сервера копирует cstrings.config.staging в cstrings.config и т. Д.

0 голосов
/ 27 июня 2010

Может быть немного другой способ сделать это.

На ваших производственных серверах создайте фиктивную запись для customdb в файле c: \ windows \ system32 \ drivers \ etc \ hosts на каждом из производственных компьютеров. Каждый указывает на базу данных, которую вы хотите использовать на этой машине. Тогда вам нужно только указать на connectionString = customdb; для всех ваших производственных серверов.

Единственным недостатком этого является то, что вам потребуется доступ к файлу hosts, и для этого потребуется использовать базу данных.

Надеюсь, это поможет

0 голосов
/ 24 июня 2010

Я считаю, что профили публикации не зависят от профилей сборки, что немного обидно, так как вы легко можете случайно развернуть конфигурацию отладки на своих производственных серверах.

Однако, если выиспользуя MSDeploy, есть способы изменить там файл web.config.См. MSDeploy - Изменение параметра строки подключения после развертывания пакета для получения дополнительной информации.

...