【发布时间】: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)路径。如果我们可以让它指向服务器上的一个中心位置,那么这可能会起作用。但据我了解,它必须位于应用程序根目录下方的位置,并且必须是相对路径。我读过有关使用文件链接的信息,如果我们在更改后部署每个应用程序,这将起作用,但我们不想这样做 - 我们希望能够将文件部署到一个位置(每台服务器,最坏的情况)并完成。
理论上,这听起来像是我们想要的。但我发现对它的支持很少,所以我想知道这是否已被弃用、不能按我的想法工作或不推荐。
其他人如何共享这样的配置值,有没有办法使用上述任何方法来完成我描述的操作?我们的情况有哪些最佳做法?
提前致谢。
【问题讨论】:
标签: .net web-config app-config