2016-05-05 回答
代码如下:请导入 system.xml命名空间
string file = server.mappath(@"~\web.config");
xmldocument xmldoc = new xmldocument();
xmldoc.load(file);
string s1 = "aaa";
string s2 = "bbb";
string h = "ccc";
string user = "ddd";
string pass = "eee";
xmlnodelist nodelist = null;
nodelist = xmldoc.selectsinglenode("configuration//connectionstrings").childnodes;
//遍历所有子节点
foreach (xmlnode xn in nodelist)
{
//将子节点类型转换为xmlelement类型
xmlelement xe = xn as xmlelement;
if (xe.name == "add")
{
if (xe.getattribute("name") == "acountconnectionstring")
{
xe.setattribute("connectionstring", s1);
}
if (xe.getattribute("name") == "mailaddress")
{
xe.setattribute("connectionstring", s2);
}
}
}
nodelist = xmldoc.selectsinglenode("configuration//system.net//mailsettings//smtp").childnodes;
foreach (xmlnode xn in nodelist)
{
//将子节点类型转换为xmlelement类型
xmlelement xe = xn as xmlelement;
if (xe.name == "network")
{
xe.setattribute("host", h);
xe.setattribute("username", user);
xe.setattribute("password", pass);
break;
}
}
xmldoc.save(file);
但实际上通过代码修改web.config的操作微乎其微
1. web.config的修改可能会导致session等服务器变量的丢失
2. 如果你的页面是发布在iis下面,要通过页面修改web.config,必须给web.config这个文件添加 network service (iis6)或 aspnet (iis)用户的写权限,这在实际操作中是不可想象的