Что такое хороший способ редактировать файл Web.config программно?
Я просмотрел System.Xml, но не смог найти никаких очевидных ответов.
Что такое хороший способ редактировать файл Web.config программно?
Я просмотрел System.Xml, но не смог найти никаких очевидных ответов.
Этот парень показывает пример кода, если вы все еще хотите сделать это после всех оговорок:
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 - это зашифровать его, о чем идет речь в этой статье.
Вы можете использовать WebConfigurationManager для чтения определенных разделов конфигурации. Это вернет объект ConfigurationSection. Вы можете использовать это для чтения/изменения ConfigurationElements в этом разделе. После того, как вы их обновите, вы можете сохранить ConfigurationSection, и он обновит файл с вашими изменениями.
Я использую это, чтобы автоматически шифровать appSettings и connectionStrings в Application_Start, если они еще не зашифрованы. На самом деле, я не изменил никаких настроек, но похоже, что вы должны это сделать.
Сохранение обновленного файла конфигурации может привести к переходу приложения в зависимости от того, как оно построено.
В зависимости от того, что вы делаете, в каждой ситуации метод действительно немного отличается. Однако наиболее надежный метод заключается в том, чтобы загрузить его как XmlDocument и изменить его по мере необходимости с помощью этого метода, но вы ДОЛЖНЫ быть осторожны, чтобы только модифицировать его соответствующим образом.
В теории; вы можете просто создать веб-конфигурационный файл программно и с некоторыми шаблонами, чтобы упростить его.
Однако, если вы пытаетесь отредактировать свой web.config с сайта; он высоко не рекомендует. По крайней мере; вы будете запускать приложение reset каждый раз, когда вы его обновляете; что было бы особенно плохо, если вы используете сеансы в процессе.
Как спросил Андерс, что вы пытаетесь сделать?
Да, я согласен с Джошем. Я пробовал это раньше, и у меня было два отрицательных эффекта:
Согласитесь с другими, редактирование webconfig является достижимым, но имеет эффект постукивания только для опасного/связанного риска
Если это значение, специфичное для приложения, оно должно быть в конфигурационном файле, специфичном для приложения
Много времени, которое вы хотите изменить параметры приложения после развертывания, например, скажите, когда что-то не так, например. переключение соединения с базой данных в случае понижения текущей БД. Кроме того, иногда вы хотите создать свой собственный файл конфигурации на основе XML, который вы хотите o изменять программно.
Попробуйте XML Webpad - http://xmlwebpad.codeplex.com/
Его структура для просмотра XML файлов редактирования. После того как вы интегрируете его со своим веб-приложением, редактирование web.config будет таким же простым, как просмотр страницы web.config, внесение необходимых изменений и нажатие кнопки сохранения (все из вашего приложения).