gpt4 book ai didi

c# - 如何在 ASP.NET 中管理应用程序配置?

转载 作者:太空狗 更新时间:2023-10-29 23:42:24 24 4
gpt4 key购买 nike

我在管理为不同客户端部署的 ASP.Net 应用程序配置时遇到困难。需要调整的大量不同设置会占用大量时间,而且当前的配置方法过于复杂,无法让我们将这一责任推给支持合作伙伴。

对于处理此问题的更好方法或研究的良好信息来源有什么建议吗?

我们目前如何做事:

  • Web.Config 中引用的各种 xml 配置文件,例如 AppSettings.xml。
  • 特定站点的配置保存在重复的配置文件中。
  • 包含网站特定数据列表的文本文件
  • 在某些情况下,对数据库进行手动一次性更改
  • Windsor IOC 的 C# 配置。

我们遇到的具体问题:

  • 启用不同功能的不同站点、我们必须与之交流的不同外部服务以及不同的业务规则。
  • 不同的部署类型(实时、测试、培训)
  • 不同版本的配置 key 会发生变化(添加、删除),这意味着我们必须更新所有重复的文件
  • 我们仍然需要能够在应用程序运行时更改 key

我们目前关于如何解决这个问题的想法是:

  • 将配置移动到动态编译的代码中(可能是 Boo、Binsor 或 JavaScript)
  • 具有某种形式的差异/合并配置:将默认配置与实时/测试/训练配置和特定于站点的配置相结合

最佳答案

无论采用哪种方式,我认为为您的配置提供单一“真实来源”的概念可能很有值(value)。

如果您需要以特定形式为某些组件提供配置,那么复制是可以的。

但是为了保持理智,我认为您应该尝试在一个地方设置与您的应用程序相关的所有配置,然后使用定义明确的机制将其转换为 Web.config 中的条目,以及任何其他您必须支持的配置机制。

根据您的支持合作伙伴的技能水平(他们是否会破坏 XML),我想您可能还想提供一个 GUI 实用程序,让他们转动这个“真实来源”配置文件中的所有旋钮,使用“应用”并运行转换/更新代码以对 Web.config 和 friend 进行必要的更改。

然后为了管理不同站点/客户的配置,理论上您需要管理大约一个配置文件。

注意:在 ASP.NET 4.0 中,构建时配置转换机制将可用(请参阅 http://blog.hmobius.com/post/2010/02/17/ASPNET-40-Part-4-Config-Transformation-Files.aspx),这可能会使此任务更容易。看来您可以将其与非 Web 项目的一些 hack 一起使用(参见 http://philbolduc.blogspot.com/2010/03/using-config-transforms-outside-web.html )。

但是,如果您需要在部署时进行这些更改,您可能无法编写自定义工具来执行此操作,尽管看起来 XDT 转换可能是适合您的方式,因为您希望能够添加/更新/删除项目。

关于c# - 如何在 ASP.NET 中管理应用程序配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2500523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com