我的app.config配置文件是这样的:<?xml version="1.0" encoding="utf-8" ?><configuration> <configSections> </configSections> <connectionStrings> <add name="sql" connectionString="Data Source=localhost;Initial Catalog=eLib3;Integrated Security=false;uid=sa;pwd=123456"/> </connectionStrings></configuration>然后我想在程序启动的时候先要设置它的配置,才能继续往下操作<add name="sql" connectionString="Data Source=localhost;Initial Catalog=eLib3;Integrated Security=false;uid=sa;pwd=123456"/>这条配置信息就会发生相应的改变。 具体是怎么实现的呢?在网上找了一大堆,但就是看不懂,不知道他那代码放到什么地方。我对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)用户的写权限,这在实际操作中是不可想象的