如何将配置保存到web.config文件中?

时间:2010-11-09 13:32:40

标签: asp.net web-config save

我使用的是Asp.net动态网站应用程序,无法将配置保存到web.config文件中。

我尝试过类似的东西,但不起作用!

 var configuration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");

        configuration.AppSettings.Settings["Value"].Value = "Some value";
        configuration.Save();

我遇到错误

1. OpenWebConfiguration(Server.MapPath(".")) & OpenWebConfiguration(Server.MapPath("~"):

The relative virtual path 'C:/...' is not allowed here.

2. OpenWebConfiguration("~")

    An error occurred loading a configuration file: Failed to map the path '/'.

我真的不知道该怎么办了。

2 个答案:

答案 0 :(得分:2)

documentation开始,它声明传递路径的空值将打开默认的web.config文件。
查看代码时,您实际上并未在路径中指定配置文件名。

所以使用:

    OpenWebConfiguration(null)
编辑:O.k。我已经做了一些进一步的调查,传入null将访问C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Config文件夹中的服务器默认web.config文件,这不是你想要的。
传递“〜”应该可以访问Web应用程序默认的web.config文件,我使用以下代码在Visual Studio 2008中使用.NET 3.5成功测试了这个:

    Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
    config.AppSettings.Settings["test"].Value = "Hello";
    config.Save();

我不确定为什么这不符合您的情况。我建议在创建Configuration对象的代码行中放置一个断点,并使用Visual Studio IDE中的“立即窗口”来调用WebConfigurationManager的静态OpenWebConfiguration方法,以查看可以获得的结果。输入WebConfigurationManager.OpenWebConfiguration("~").AppSettings.Settings.AllKeys之类的内容应该表明您是否成功访问了web.config。

答案 1 :(得分:0)

使用以下代码。

configuration.Save(ConfigurationSaveMode.Full, true);