动态操作配置文件

时间:2010-09-15 08:39:16

标签: .net

是否可以在运行时更改web.config的内容?

3 个答案:

答案 0 :(得分:1)

是的,是的。

安全的方法是写信至appSettingsWriting to Your .NET Application's Config File
但你可以also hack it(不要这样做)。

答案 1 :(得分:0)

我已尝试使用以下代码在运行时更新web.config文件。

让我们说web.config有一个像这样的键

<connectionStrings>
    <add name="conkey" connectionString="old value" />
</connectionStrings>

这是更新web.config文件的C#代码。

 string path = Server.MapPath("Web.config");
             string newConnectionString = "updated value"; // Updated Value

            XmlDocument xDoc = new XmlDocument(); 
            xDoc.Load(path);

            XmlNodeList nodeList = xDoc.GetElementsByTagName("connectionStrings");

            XmlNodeList nodeconnectionStrings = nodeList[0].ChildNodes;

            XmlAttributeCollection xmlAttCollection = nodeconnectionStrings[0].Attributes;

            xmlAttCollection[1].InnerXml = newConnectionString; // for value attribute

            xDoc.Save(path); // saves the web.config file  

这段代码对我有用。但是建议不要这样做。

答案 2 :(得分:0)

使用WebConfigurationManager类的另一种方法。

Configuration cfg = WebConfigurationManager.OpenWebConfiguration("~");
ConnectionStringSettings consettings = cfg.ConnectionStrings.ConnectionStrings["conkey"];
consettings.ConnectionString = "updated value";           
cfg.Save();