【问题标题】:Modifying Root Web.config in code在代码中修改 Root Web.config
【发布时间】:2011-01-30 16:59:50
【问题描述】:

我想存储一些关于给定站点实例的元信息,这些元信息可以 (a) 由该站点实例管理,并且 (b) 持续破坏 Web.config 文件。 该站点将在多个环境(开发、测试、登台和生产)中运行,并且每个环境可以对此元数据具有不同的值。 注意:所有环境都运行 IIS 7.0+

Root Web.config 看起来很吸引人,因为它肯定在网站之外。因此,可以在维护元数据的同时更改文件和数据库。我已经看到如何修改存储在网站中的 Web.config 的 appSettings,但是是否可以类似地修改 Root Web.config 中的 appSettings(特别是在正确的指令中)?

如果您对解决此问题有其他建议,我会很高兴听到这些建议。谢谢!

【问题讨论】:

    标签: asp.net web-config


    【解决方案1】:

    不会使用 web.config 进行运行时修改,这将导致应用程序回收,可能是其他形式的配置文件,如 app.config

    如果我的假设不正确,并且应用程序启动后web.config不会被编辑,那么您可以使用WebConfigurationManager访问文件部分

    【讨论】:

    • 感谢两位的回答。还有一件小事让我一直在寻找,那就是应该使用 null 作为虚拟路径参数来引用根 web.config。 WebConfigurationManager.OpenWebConfiguration(null)
    【解决方案2】:

    是的,您可以在 web.config 中修改应用设置只需使用 System.Web.Configuration 命名空间中的 WebConfigurationManager 类来创建配置对象。然后可以使用该对象读取和写入对 web.config 文件的更改。

    然后您可以创建自己的“键”或可以根据需要读取的属性。

    根据您的属性所代表的内容或者是否需要从该服务器的多个环境中获取它们,我还将考虑在 machine.config 文件中进行修改,因为这些设置将应用于输入机器并因此被选中由多个环境组成(如果您从服务器托管多个 Web 应用程序)。这可以节省您修改多个 web.config 文件的时间,并将存储或元数据缩小到一个位置,而不是在某些情况下使用多个配置文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多