Как создать общий файл web.config для разных веб-серверов в веб-приложении .net? - PullRequest
1 голос
/ 13 июля 2010

Я хочу создать общий файл web.config для разных веб-серверов в VB.NET. Таким образом, в зависимости от требований к конфигурации сервера приложения могут извлекать все значения из этого общего файла конфигурации.

Возможно ли это? Как бы я это сделал?

Ответы [ 5 ]

2 голосов
/ 13 июля 2010

Технически, есть machine.config , который включает в себя настройки, которые применяются ко всей машине.

Файлы web.config могут переопределять некоторые настройки из него.

2 голосов
/ 13 июля 2010

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

1 голос
/ 13 июля 2010

Как насчет ключа / значения appsetting "mode".Этот «режим» может быть установлен на «dev», «testing», «prod» и т. Д. Затем установите режим текущего файла конфигурации и добавьте к нему все параметры, которые будут меняться вместе с режимом.

Пример:

<add key="mode" value="test" /> <!-- possible values: dev, test, prod -->

<add key="dev.dbconnstr" value="data source=DB;userid=ABC;password=DEF" />
<add key="test.dbconnstr" value="data source=DB;userid=ABC;password=DEF" />
<add key="prod.dbconnstr" value="data source=DB;userid=###;password=###" />

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

Пример:

mode = ConfigurationManager.AppSettings("mode");
CongifurationManager.AppSettings(mode + ".dbconnstr");

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

1 голос
/ 13 июля 2010

Для всего, что остается прежним, используйте один web.config.

Для всего, что изменяется, используйте ссылку на внешний файл.

<configuration>
   <appSettings file="ExternalWeb.config">
      <add key="MyKey" value="MyValue" />
   </appSettings>
   ...
</configuration>

http://www.devx.com/vb2themax/Tip/18880

Таким образом, когда что-то меняется в основном файле web.config, мало что должно быть обновлено.

Вы также можете рассмотреть возможность использования шаблонов и методов генерации кода для создания файла web.config для каждого сервера.

0 голосов
/ 14 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...