【问题标题】:Sharing config files & database connection strings across enterprise跨企业共享配置文件和数据库连接字符串
【发布时间】:2011-06-20 22:44:45
【问题描述】:

我们公司有几个应用程序——Web 和控制台/窗口——都连接到同一组数据库。我正在尝试找出存储/访问/管理各种数据库连接字符串的最佳方法,以便可以在所有应用程序之间共享它们。

目前,我们在所有服务器上的 machine.config 文件中都有连接字符串。虽然这消除了在每个应用程序的配置文件中包含这些连接字符串的需要,但我们仍然必须在每个服务器上拥有相同的设置块,并且每个服务器都有 4 个不同的版本,我们必须将它们包含在(32 位/64 位、2.0 和 4.0 框架)。此外,每台服务器都有自己的环境(开发、QA、生产),因此这些设置必须分开。这加起来,在需要更改时变得难以管理。

理想情况下,最好在每台服务器上都有一个中心位置——可能在网络上共享——这些数据库连接字符串(可能还有其他信息)存储在其中。我研究了几个选项,但每个选项都有局限性:

configSource and appSettings file

这看起来不错,但仅适用于 app.config 和 web.config 级别,并且不支持绝对(或 UNC)路径。如果我们可以让它指向服务器上的一个中心位置,那么这可能会起作用。但据我了解,它必须位于应用程序根目录下方的位置,并且必须是相对路径。我读过有关使用文件链接的信息,如果我们在更改后部署每个应用程序,这将起作用,但我们不想这样做 - 我们希望能够将文件部署到一个位置(每台服务器,最坏的情况)并完成。

linkedConfiguration

理论上,这听起来像是我们想要的。但我发现对它的支持很少,所以我想知道这是否已被弃用、不能按我的想法工作或不推荐。

其他人如何共享这样的配置值,有没有办法使用上述任何方法来完成我描述的操作?我们的情况有哪些最佳做法?

提前致谢。

【问题讨论】:

    标签: .net web-config app-config


    【解决方案1】:

    希望这会有所帮助,尽管它可能与所问的问题完全不同。

    为了管理各种环境中的配置,我们使用了一种非常好的方法,该方法利用了 maven 和 Jenkins 等构建自动化工具,以及一个简单的 java 程序和一些 bash 脚本。

    我们创建了一个字典,其中包含所有环境(DEV、QA、PROD)的各种属性,它将应用于包含所有环境的配置文件列表的通用模板,Java 程序替换了模板中的占位符,使用字典中的值,为所有环境创建配置文件,因此所有配置现在都在我们创建的字典的代码级别进行管理。 Java 程序是在一个 Maven 构建中执行的,它还会复制我们在生成的配置文件中可能需要的任何其他资源(例如证书),整个东西通过 Jenkins 打包并部署在服务器中,最后部分 bash 脚本会将配置文件放在正确的文件夹中,从而使一切自动化。

    【讨论】:

      【解决方案2】:

      根据这篇文章,这是不可能的。

      http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/1cad3740-12f5-4859-ba02-717c4b418a8c/

      It must refer to a file in the same directory or in a subdirectory as the configuration file.
      

      现在,如果您想研究“拖拉机拖车”版本的配置,请进入这个兔子洞:

      http://msdn.microsoft.com/en-US/vstudio/bb499684.aspx

      配置服务

      或(相同的东西,但寻找它的方式不同) google 或 bing 这个

      stocktrader msdn“配置服务”

      它不适合温和的人。但就是将配置更改部署到大型环境。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多