我需要通过.aspx或.cs页面从ASP.Net中的web.config文件更改值appSettings。是否可能>请提供一些示例,我的示例代码是:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="variable" value="7" />
<add key="logfilelocation" value="abc.txt" />
</appSettings>
</configuration>
答案 0 :(得分:1)
基于此thread
Configuration myConfiguration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
myConfiguration.AppSettings.Settings.Item("myKey").Value = txtmyKey.Text;
myConfiguration.AppSettings.Settings.Remove("MyVariable");
myConfiguration.AppSettings.Settings.Add("MyVariable", "MyValue");
myConfiguration.Save();
答案 1 :(得分:0)
是的,但是应该谨慎行事。我必须执行此操作的示例是作为安装程序项目的一部分,因此web.config未被使用,并且该应用程序是第一次安装。
这样的东西可以适应你的目的:
private string ConfigPath { get { return Path.Combine(targetDirectory.Substring(0, targetDirectory.LastIndexOf("\\") - 1), "Web.Config"); } }
XmlDocument doc = new XmlDocument();
doc.Load(this.ConfigPath);
XmlNode MyNode = doc.SelectSingleNode("configuration/appSettings/add[@key='YourKey']");
MyNode.Attributes["value"].Value = YourValue;
doc.Save(this.ConfigPath);
或者,您可以像这样使用ConfigurationManager来修改现有密钥:
var config = System.Web.Configuration.WebConfigurationManager
.OpenWebConfiguration("~/web.config");
config.AppSettings.Settings["Your Key"].Value = "Your Value";
config.Save(ConfigurationSaveMode.Modified);