我使用的是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 '/'.
我真的不知道该怎么办了。
答案 0 :(得分:2)
从documentation开始,它声明传递路径的空值将打开默认的web.config文件。
查看代码时,您实际上并未在路径中指定配置文件名。
所以使用:
OpenWebConfiguration(null)
编辑:O.k。我已经做了一些进一步的调查,传入null将访问C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Config文件夹中的服务器默认web.config文件,这不是你想要的。 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);