【问题标题】:Web application configuration settings - Which is the better place to storeWeb 应用程序配置设置 - 哪个是更好的存储位置
【发布时间】:2011-06-10 09:45:32
【问题描述】:



几天前我遇到了一个案例研究。它与 Web 应用程序架构有关。
这是场景,
说 1000 个 Web 应用程序使用一个 Web 服务。此 Web 服务托管在特定服务器上。如果 Web 服务托管位置发生更改,其他应用程序如何知道此更改?
将它保存在 web.config 中似乎不是一个可行的解决方案,因为我们需要修改所有应用程序的 web.config 文件。
我想到了将这些设置保存在一个公共存储库中并让所有应用程序将其用于 Web 服务地址,但再次存在存储这个公共存储库的问题。

我只是想知道如何以更好的性能实现这一点。
提前感谢您的任何建议。

【问题讨论】:

    标签: asp.net architecture


    【解决方案1】:

    您是否对所有使用该 Web 服务的 Web 应用程序具有完全访问权限或控制权?如果是这样,您可以有一个脚本或一些自定义代码来一次更新他们所有的 web.config(s)。看起来工作量太大,但实际上通过这种方式你有更多的控制权,你也可以最终只将一些应用程序指向新的 url,而将其他一些应用程序留在另一个 url 上。

    在集中式数据库中设置的想法为您提供更快的更新传播,这在发生错误时也可能很糟糕,然后您的所有应用程序都引用同一个地方并且无法拆分它。然后你无论如何都必须从他们所有人那里连接到一个集中式数据库,也许你应该在他们的 web.config(s) 中添加一个带有该数据库的连接字符串的密钥,然后,如果该数据库无法访问或已关闭, Web 应用程序将无法使用 Web 服务,因为它们无法获取它的 url。

    我会选择网络配置,最终你可以有一个设置帮助类来抽象该 url 的检索,因此 UI 或前端不知道该 url 来自哪里。

    无论如何,您是否打算经常更改 Web 服务的 url?将它复制到一个新的 url 并在当前 url 上保留一段时间不是更好吗?

    web.config 方法的另一个优点是,每次更新并保存它时,应用程序都会重新启动,而数据库中的更改可能需要一段时间才能检测到,以防您有一些缓存机制,

    希望这会有所帮助。

    大卫。

    【讨论】:

    • 感谢大卫的回复。在完全访问的情况下,编写脚本可能很有用。但是,我认为如果所有 Web 应用程序都托管在不同的不同服务器上,那么这样做可能会很麻烦。
    • 当然你是对的,那么你最终可以使用另一个 Web 服务和 Web 方法来获取用于另一个服务的最新 url,当然这只适用于你能够维护一个永久 url对于这样的帮助服务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多