以编程方式编辑Web.config

时间:2008-11-06 21:09:46

标签: asp.net vb.net web-config

以编程方式编辑Web.config文件的好方法是什么?

我查看了System.Xml但找不到任何明显的答案。

7 个答案:

答案 0 :(得分:13)

This fellow显示示例代码,如果您仍想在所有警告之后执行此操作:

protected void EditConfigButton(object sender, EventArgs e)
{
   Configuration objConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
   AppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings");
   //Edit
   if (objAppsettings != null)
   {
      objAppsettings.Settings["test"].Value = "newvalueFromCode";
      objConfig.Save();
   }
}

编辑web.config的一个正当理由是加密它,这就是那篇文章的内容。

答案 1 :(得分:3)

您可以使用WebConfigurationManager读取特定的配置节。这将返回一个ConfigurationSection对象。您可以使用它来阅读/修改本节中的ConfigurationElements。更新后,您可以保存ConfigurationSection,它将使用您的更改更新文件。

我使用它来自动加密Application_Start上的appSettings和connectionStrings(如果它们尚未加密)。我实际上没有以这种方式改变任何设置,但似乎你应该能够这样做。

保存更新的配置文件可能会导致应用程序根据其构建方式进行回收。

答案 2 :(得分:1)

根据您的工作情况,该方法在每种情况下都有所不同。然而,最强大的方法是将其作为XmlDocument加载并根据需要通过该方法进行修改,但您必须小心,只能以所需的方式修改它。

答案 3 :(得分:1)

理论上;你可以通过编程方式生成一个Web配置文件,并使用一些模板来简化它。

但是,如果您尝试从站点内编辑web.config;这是高度建议您不要。至少;每次更新时都会触发应用程序重置;如果您正在使用进程内会话,这将特别糟糕。

正如安德斯所问,你想做什么?

答案 4 :(得分:0)

是的,我同意乔希。我之前尝试过这个,但我有两个负面影响:

  1. 如果当前页面回发后加载速度慢,因为ASP.NET正在加载web.config和所有相关资源
  2. 如果您在加载周期中尽早更改了web.config(例如global.asax事件),则网站可能永远不会以不可预测的方式加载或失败

答案 5 :(得分:0)

与其他人一致,编辑webconfig是可以实现的,但是对于危险/风险只会产生影响

如果它是特定于应用程序的值,那么它应该在特定于应用程序的配置文件

答案 6 :(得分:0)

很多时候你想要在部署之后修改特定于应用程序的设置,例如在出现问题时在当前DB关闭的情况下切换数据库连接。此外,有时您希望创建自己的基于XML的配置文件,您希望以编程方式进行修改。

尝试使用XML Webpad - http://xmlwebpad.codeplex.com/

它是一个查看编辑XML文件的框架。将它与您的Web应用程序集成后,编辑web.config就像查看web.config页面一样简单,进行必要的更改并点击保存按钮(所有这些都来自您的应用程序)。