如何使用C#(来自配置Web应用程序的其他应用程序)以编程方式更改 web.copnfig中的应用程序设置? 以下代码剪辑不起作用,因为 AppSettings [...] 只读!
configuration = WebConfigurationManager.OpenWebConfiguration(...);
ConfigurationSectionGroup configurationSectionGroup = (ConfigurationSectionGroup)configuration.GetSectionGroup("applicationSettings");
ConfigurationSection configurationSection = (ConfigurationSection)configurationSectionGroup.Sections[...];
configurationSection.CurrentConfiguration.AppSettings[...].value = value
答案 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,将您的设置保留在不同服务器上的不同状态。