web.config的部分配置如下,我们来修改appSettings中的value:
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<configSections>
。。。
。。。
</configSections>
<appSettings>
<add key="ShopDoor" value="KFC" />
<add key="ShopName" value="肯德基" />
</appSettings>
。。。
。。。
</configuration>
我们知道,可以用System.Configuration.ConfigurationSettings.AppSettings[0].ToString()来获得appSettings中的第一项设置的value,即“KFC”。根据AppSettings的参数设置,可以获取appSettings下的所有配置项的值。下面我们来修改这些配置:
自定义一个方法,参数就是key和value,作用就是修改key对应的value
private void ModifyConfig(string key, string strValue)
{
string WPath = HttpContext.Current.Server.MapPath("web.config"); //获得config文件的绝对路径
System.Xml.XmlDocument domWebConfig = new System.Xml.XmlDocument();
domWebConfig.Load(WPath);
System.Xml.XmlNodeList addNodes = domWebConfig.GetElementsByTagName("add");
for (int i = 0; i < addNodes.Count; i++) //循环appSettings中的节点,即所有的key和value
{
System.Xml.XmlAttribute att= addNodes[i].Attributes["key"];
if (att.Value == key) //判断是不是传过来的参数key
{
att = addNodes[i].Attributes["value"]; //获取对应的value
att.Value = strValue; //把新的值付给对应的value
break;
}
}
domWebConfig.Save(WPath); //保存修改
}
如果我们调用这个方法,如ModifyConfig(“ShopDoor”, “McDonald”),就可以把config中的"KFC“修改为"McDonald"了
备注:
发布网站之后,在浏览网页时,如果页面调用ModifyConfig这个方法出错,那么需要把web.config文件的属性修改一下。
先找到这个文件,右键属性 -> “安全”选项卡 -> 勾选‘Users’的“写入”权限即可。