我在管理为不同客户端部署的 ASP.Net 应用程序的配置时遇到了困难。大量不同的设置需要摆弄,占用了大量的时间,而当前的配置方法过于复杂,我们无法将这个责任推给支持合作伙伴。
有什么更好的方法来处理这个问题或有什么好的研究信息来源的建议吗?
我们目前是怎么做的:
- Web.Config 中引用的各种 xml 配置文件,例如 AppSettings.xml。
- 特定站点的配置保存在重复的配置文件中。
- 包含特定于站点的数据列表的文本文件
- 在某些情况下,手动一次性更改数据库
- Windsor IOC 的 C# 配置。
我们遇到的具体问题:
- 启用了不同功能的不同站点、我们必须与之交谈的不同外部服务以及不同的业务规则。
- 不同的部署类型(实时、测试、培训)
- 配置键随版本变化(添加、删除),这意味着我们必须更新所有重复的文件
- 我们仍然需要能够在应用程序运行时更改密钥
我们目前对如何解决这个问题的想法是:
- 将配置移动到动态编译的代码中(可能是 Boo、Binsor 或 JavaScript)
- 具有某种形式的差异/合并配置:将默认配置与实时/测试/培训配置和特定于站点的配置相结合