我想通过Web应用程序的前端向用户公开一些web.config设置。我可以毫无问题地检索设置,但是当我保存时,我得到一个错误或者更改没有持久保存到web.config文件中。我在VS中调试。
如果我这样做:
private void SaveWebConfig()
{
Configuration webConfig = WebConfigurationManager.OpenWebConfiguration("~//Web.config");
webConfig.AppSettings.Settings["DocumentPath"].Value = this.txtDocumentsDirectory.Text;
webConfig.Save();
}
我收到以下错误: 无法为请求的Configuration对象创建配置文件。
如果我运行此代码,则不会发生任何事情:
private void SaveWebConfig()
{
Configuration webConfig = WebConfigurationManager.OpenWebConfiguration("~//Web.config");
webConfig.AppSettings.Settings["DocumentPath"].Value = this.txtDocumentsDirectory.Text;
webConfig.SaveAs("~//Web.config");
}
答案 0 :(得分:4)
据我所知,消费的Web应用程序不应更改web.config。构建ASP.NET和IIS是为了在每次更新web.config时重新启动整个应用程序。
不是暴露它暴露数据库中的设置并在数据库中保留这些设置,而是前端不应该只更改加载和保存数据的方式。
答案 1 :(得分:0)
可以做到,而且很容易。它是否有效取决于您的应用程序运行的用户帐户的权限。
您正在使用双正斜杠,而SaveAs也是错误的。尝试:
private void SaveWebConfig()
{
Configuration webConfig = WebConfigurationManager.OpenWebConfiguration("~");
webConfig.AppSettings.Settings["DocumentPath"].Value =
this.txtDocumentsDirectory.Text;
webConfig.Save();
}
但是你可能应该尽可能避免更改(root)web.config。我在SiteManager的特殊页面中只看到了这一点,以便进行配置更改。