运行时修改Web.config中的元素值

大家都知道Asp.Net提供了一个WebApplication的配置文件web.config,让我们可以很方便地设置Web应用程序,另外还可以在appSettings节中增加一些我们常要使用的单元,如数据库连接串等,利用System.Configuration.ConfigurationSetting类我们可以很容易读取这些单元的值,但是要改变这些值就需要一些技巧了,下面我就来告诉大家如何在运行时利用System.Management中的类去改变这些单元的值。

现假设您有一个WebApplication名叫MyWebApp,虚拟路径为: http://localhost/MyWebApp ,目录路径为:c:\inetpub\wwwroot\MyWebApp,其中配置文件web.config中的appSettings设置如下:

1<configuration>
2<appsettings>
3<add key="test" value="runtime modify test"></add>
4</appsettings>
5</configuration>

创建一个新的Console应用程序加入以下代码:

using System;
using System.Management;

namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
ManagementObject appSet= new ManagementObject("root\\NetFrameworkV1:appSettings.Directive="add",key="test",Selector=" file://C:/Inetpub/wwwroot/MyWebApp/web.config\ "");
Console.WriteLine(string.Format("Old value:{0}",appSet["value"]));
appSet.SetPropertyValue("value","new value was set ok!");
appSet.Put();
Console.WriteLine("New value setted ok!");
Console.Read();
}
}
}

编译并运行,然后查看MyWebApp/web.config是否已被成功修改!!!:)

Published At
Categories with Web编程
Tagged with
comments powered by Disqus