【问题标题】:Editing Web.config programmatically以编程方式编辑 Web.config
【发布时间】:2010-09-21 04:21:12
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      同意其他人的观点,编辑 webconfig 是可以实现的,但具有连锁反应只是危险/涉及风险

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

      【讨论】:

        【解决方案3】:

        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 的一个正当理由是对其进行加密,这就是那篇文章的内容。

        【讨论】:

        • 例如更改身份验证模式。
        【解决方案4】:

        理论上;您可以通过编程方式生成一个 Web 配置文件,并使用一些模板使其变得简单。

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

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

        【讨论】:

        • 例如更改身份验证模式。
        【解决方案5】:

        是的,我同意乔希的观点。我以前试过这个,我有两个负面影响:

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

        【讨论】:

          【解决方案6】:

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

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

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

          【讨论】:

            【解决方案7】:

            根据你在做什么,方法在每种情况下确实有点不同。然而,最可靠的方法是将其加载为 XmlDocument 并通过该方法根据需要对其进行修改,但您必须小心仅以所需的方式对其进行修改。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-10-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-04-23
              相关资源
              最近更新 更多