Редактирование Web.config программно - PullRequest
11 голосов
/ 07 ноября 2008

Как правильно редактировать файл Web.config программно?

Я заглянул в System.Xml, но не смог найти очевидных ответов.

Ответы [ 7 ]

13 голосов
/ 07 ноября 2008

Этот сотрудник показывает пример кода, если вы все еще хотите сделать это после всех предостережений:

protected void EditConfigButton(object sender, EventArgs e)
{
   Configuration objConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
   AppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings");
   //Edit
   if (objAppsettings != null)
   {
      objAppsettings.Settings["test"].Value = "newvalueFromCode";
      objConfig.Save();
   }
}

Одной из веских причин для редактирования файла web.config является его шифрование, о чем и говорится в этой статье.

3 голосов
/ 07 ноября 2008

Вы можете использовать WebConfigurationManager для чтения определенных разделов конфигурации. Это вернет объект ConfigurationSection. Вы можете использовать это, чтобы прочитать / изменить ConfigurationElements в разделе. Как только вы обновите их, вы можете сохранить ConfigurationSection, и он обновит файл с вашими изменениями.

Я использую это для автоматического шифрования appSettings и connectionStrings в Application_Start, если они еще не зашифрованы. На самом деле я не изменил никаких настроек таким образом, но, похоже, вы должны это сделать.

Сохранение обновленного файла конфигурации может привести к перезапуску приложения в зависимости от его сборки.

1 голос
/ 07 ноября 2008

в теории; Вы можете просто сгенерировать файл веб-конфигурации программно и с некоторыми шаблонами, чтобы упростить его.

Однако, если вы пытаетесь редактировать ваш файл web.config с сайта; это очень рекомендуется не делать. По крайней мере; вы будете запускать сброс приложения каждый раз, когда обновляете его; что было бы особенно плохо, если вы используете внутрипроцессные сеансы.

Как спросил Андерс, что ты пытаешься сделать?

1 голос
/ 07 ноября 2008

В зависимости от того, что вы делаете, метод действительно немного отличается в каждой ситуации. Однако самый надежный метод - это загрузить его как XmlDocument и изменить его при необходимости с помощью этого метода, но вы ДОЛЖНЫ быть осторожны, чтобы изменить его только нужным образом.

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

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

Попробуйте XML Webpad - http://xmlwebpad.codeplex.com/

Это структура для просмотра файлов XML редактирования. После того, как вы интегрируете его с вашим веб-приложением, редактирование web.config будет таким же простым, как просмотр страницы web.config, внесение необходимых изменений и нажатие кнопки сохранения (и все это из вашего приложения).

0 голосов
/ 21 ноября 2008

Согласитесь с другими, редактирование веб-конфигурации возможно, но имеет последствия только для опасного / сопутствующего риска

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

0 голосов
/ 07 ноября 2008

Да, я согласен с Джошем. Я пробовал это раньше, и у меня было два негативных эффекта:

  1. Медленная загрузка, если текущая страница после обратной передачи, потому что ASP.NET загружает web.config и все связанные ресурсы
  2. Если вы измените web.config достаточно рано в цикле загрузки (например, события global.asax), сайт может никогда не загрузиться или не получится непредсказуемым образом
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...