web.config:使用C#更改应用程序设置

时间:2010-10-29 09:35:48

标签: c# .net asp.net web-config

如何使用C#(来自配置Web应用程序的其他应用程序)以编程方式更改 web.copnfig中的应用程序设置? 以下代码剪辑不起作用,因为 AppSettings [...] 只读

configuration = WebConfigurationManager.OpenWebConfiguration(...);

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

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

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

3 个答案:

答案 0 :(得分:3)

您可以更改app.config。我已经通过将其作为XML文档加载并更改其节点来完成此操作。我认为对于webюconfig也可以这样做。

这是如何使用XML读取web.config的示例,但是使用可以对其进行一些更改以使用它来编写: 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

答案 1 :(得分:0)

您无法从主机应用程序更改App.config或Web.config,即自己的设置。

仅限内部应用程序。

答案 2 :(得分:0)

由于还没有人说过这个,请不要在ASP.NET应用程序中以编程方式更改web.config设置。第二个进行了更改(无论如何完成)将导致应用程序池立即重新启动,导致缓存刷新,用户会话丢失,性能不佳以及各种其他不良事件。如果需要在运行时更改设置,请找到另一个存储它的位置。微软工程师有一个原因可以让AppSettings类只读。此外,如果您处于多服务器环境中,则只需更改其中一台服务器的web.config,将您的设置保留在不同服务器上的不同状态。