2008-11-06 134 views

回答

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文件是加密的,这是文章是关于什么的。

+0

例如更改auth模式。 – AgentFire 2015-01-30 14:53:34

1

根据你在做什么,这种方法在每种情况下都有些不同。然而,最健壮的方法是将其作为XmlDocument加载并根据需要通过该方法对其进行修改,但是您必须小心只按需要的方式对其进行修改。

3

您可以使用WebConfigurationManager读取特定的配置部分。这将返回一个ConfigurationSection对象。您可以使用它来读取/修改该部分中的ConfigurationElements。一旦你更新了它们,你可以保存ConfigurationSection,它会更新你的更改文件。

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

保存更新的配置文件可能会导致应用程序回收,具体取决于它的构建方式。

0

是的,我同意乔希。我曾经使用过这一点,我已经有两个负面影响:

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

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

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

正如Anders所问,你在做什么?

+0

例如更改auth模式。 – AgentFire 2015-02-02 10:04:51

0

同意与他人,编辑webconfig是可以实现的,但敲效果只是危险/风险参与

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

0

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

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

它是一个框架,以查看编辑XML文件。一旦将其与Web应用程序集成,编辑web.config就像查看web.config页面一样简单,进行所需更改并点击保存按钮(全部来自应用程序内)。