web.config: изменение настроек приложения с помощью C # - PullRequest
2 голосов
/ 29 октября 2010

Как я могу программно изменить настройки приложения в web.copnfig с помощью C # (из другого приложения, которое настраивает веб-приложение)?Следующий фрагмент кода не работает, потому что AppSettings [...] равно только для чтения !

configuration = WebConfigurationManager.OpenWebConfiguration(...);

ConfigurationSectionGroup configurationSectionGroup = (ConfigurationSectionGroup)configuration.GetSectionGroup("applicationSettings");

ConfigurationSection configurationSection = (ConfigurationSection)configurationSectionGroup.Sections[...];

configurationSection.CurrentConfiguration.AppSettings[...].value = value

Ответы [ 3 ]

3 голосов
/ 29 октября 2010

вы можете изменить app.config.я сделал это, загрузив его как документ XML и изменив его узлы.я думаю, что то же самое можно сделать для webюconfig.

это пример того, как читать web.config с использованием XML, но использование может внести некоторые изменения в него, чтобы использовать его для записи: http://dotnetacademy.blogspot.com/2010/10/read-config-file-using-xml-reader.html

XmlDocument xmlDoc = new XmlDocument();     
xmlDoc.Load(Server.MapPath("~/") + "app.config");     
XmlNode node = xmlDoc.SelectSingleNode("Root/Node/Element");  
node.Attributes[0].Value = newValue;     
xmlDoc.Save(xmlFile);

ниже ссылка предоставляет хороший пример, как изменить значение узла xml: http://www.fryan0911.com/2009/10/change-xml-file-node-value-using-c.html

0 голосов
/ 29 октября 2010

Поскольку никто еще не сказал об этом, пожалуйста, никогда не изменяйте настройки web.config программно в приложении ASP.NET.Второе изменение (независимо от того, как оно выполнено) приведет к немедленному перезапуску пула приложений, что приведет к сбросу кешей, падению пользовательских сеансов, снижению производительности и другим видам неприятностей.Если параметр необходимо изменить во время выполнения, найдите другое место для его сохранения.Существует причина, по которой инженеры Microsoft сделали класс AppSettings доступным только для чтения.Кроме того, если бы вы работали в многосерверной среде, вы бы изменили файл web.config только для одного из серверов, оставив настройки в разных состояниях на разных серверах.

0 голосов
/ 29 октября 2010

Вы не можете изменить App.config или Web.config из хост-приложения, то есть из своих настроек.

Только из внутреннего приложения.

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