Как изменить имя файла web.config и выполнить чтение IIS из файла с новым именем? - PullRequest
2 голосов
/ 27 марта 2009

Можно ли настроить сайт IIS для чтения параметров ASP.Net с сайта ДРУГОЕ, чем web.config?

Мы хотели бы иметь три файла конфигурации в нашей кодовой базе - web-dev.config, web-test.config и web-prod.config. Каждый экземпляр IIS будет настроен для чтения из своего конкретного файла. Таким образом, у нас есть управление версиями, все они рядом друг с другом (и развертывание всего сайта одним щелчком мыши), но мы знаем, что каждый экземпляр IIS будет считывать параметры, относящиеся к нему.

Я нашел в IIS, где он показывает, где находится web.config, но я не вижу, как изменить местоположение.

Ответы [ 5 ]

4 голосов
/ 27 марта 2009

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

<connectionStrings configSource="Config\ConnDev.config"/>

Тогда вам нужно всего лишь изменить одну настройку (вручную или с помощью инструмента), чтобы переключиться с конфигураций Dev на Production.

1 голос
/ 27 марта 2009

Лучшее решение сейчас - использовать разные конфиги для разработки и производства. Однако это изменится в .net 4 и VS 2010, в которые они добавили Web.Debug.config, Web.Release.config, Web.Staging.config и Web.Testing.config, которые затем опубликуют необходимую конфигурацию в отношении окружающая среда.

0 голосов
/ 19 февраля 2011

Я не думаю, что мы можем сделать web.config декларативно, чтобы мы могли указать другой файл конфигурации. Одна вещь, которую вы можете сделать, вы можете разделить ваш файл конфигурации и установить для разных сред. Пожалуйста, пройдите эту статью http://jetmathew.wordpress.com/2011/02/07/split-web-config-for-different-environment/

ура

0 голосов
/ 27 марта 2009

Я считаю, что он должен называться web.config.

Вы столкнулись с общей проблемой.

Одним из решений, которое я использовал и которое действительно хорошо работало в большой организации, было задание переменных среды на веб-серверах. Такие как DEV, QA, UAT, PROD. Затем в коде вы можете запросить переменную среды, чтобы увидеть, на каком компьютере вы находитесь, и затем соответствующим образом выбрать значения appSettings. Например, у вас может быть строка подключения к базе данных с именем DEVconnection, а другая - с именем UATconnection. Если ваш код определяет из переменной среды, что вы находитесь в UAT, он будет использовать UATconnection.

Это предполагает, что у вас есть возможность устанавливать переменные среды на веб-сервере. В этом случае администраторы, работающие с серверами, были теми, кто предложил это решение.

Что было приятного в этом, так это то, что когда-то была только одна версия web.config.

0 голосов
/ 27 марта 2009

В моей компании у нас просто есть инструмент для развертывания, который копирует соответствующий файл в web.config в зависимости от того, какой тип развертывания мы делаем.

...