如何迁移web.config?

时间:2009-11-22 21:33:00

标签: asp.net

情况

我们使用迁移来更新Web应用程序的所有部署的数据库架构和配置文件。现在我们遇到了迁移web.config的问题。

当前实施

迁移过程执行以下操作:

  1. 打开数据库连接
  2. 将配置从web.config读入配置对象
  3. 检索所有迁移
  4. 迭代迁移
    1. 更新数据库架构(数据库连接作为参数传递)
    2. 更新配置对象(配置对象作为参数传递)
  5. 保存配置对象
  6. 关闭数据库连接
  7. 当然,有很多代码可以确保在出现问题时迁移不会搞砸。不用担心。另外,在保存配置时重新启动Web服务器也不是问题。

    问题

    问题是,似乎无法通过配置对象对web.config进行某些更改。就像添加位置一样。

    可能的解决方案

    我的想法现在是不传递配置对象,而是将* .config文件作为xml文档的字典传递。然后,迁移可以对原始xml进行更改。

    忧虑

    我对这种方法不太感兴趣,因为配置对象会进行一些配置数据完整性检查。使用原始xml时,此功能会丢失。

    问题

    这是最好的方法吗?

3 个答案:

答案 0 :(得分:2)

我不会想到“最佳方法”。这是一个持续改进。

我会验证xml文档的字典是否完整。

答案 1 :(得分:1)

是的,一个答案是直接使用XML,或者如所讨论的那样使用反射here。最后,“尽可能做最简单的事情”......

答案 2 :(得分:0)

选项很少:

  1. 使用Windows窗体程序修改web.config(这是我们采取的方法)

  2. 请参阅以下文章:How do you modify the web.config appSettings at runtime?

  3. 现在更改web.config可能会重新启动应用程序域。但是,您可以通过禁用运行时扫描来停止它。