集中式连接字符串.常见的做法是什么

本文关键字:是什么 常见 连接 字符串 集中式 | 更新日期: 2023-09-27 18:23:52

我正在寻找一种集中定位两个连接字符串的方法。我们的团队有很多项目,主要是控制台应用程序,还有一些Web API和网站。当然,这个数字还在继续增长,特别是在控制台应用程序和Web API方面。我们现在需要更改所有数据库服务器和用户名/密码。我们别无选择,只能现在对每一个应用程序手动执行,但今后我们希望找到一个中心位置,这样我们只需更改一次文件或位置,所有应用程序都会从中获取设置。

我一直在做一些搜索,到目前为止,我看到了使用外部配置文件、使用machine.config或web服务来获取信息的建议。

使用外部文件似乎没有多大帮助,因为如果需要更改,即使是外部文件,你仍然必须更改所有应用程序上的文件。

理论上,machine.config现在对我来说似乎是合乎逻辑的。您只需将连接信息放在机器级别,任何应用程序、网站或Web API都应该能够获取它。然而,我看到很多讨论中人们都在劝阻这种做法。此外,我正试图让我的代码从machine.config中提取连接信息,但目前我还没能让它正常工作。

那么,有什么建议呢?有人在使用machine.config、外部文件或Web服务来存储连接字符串信息方面有实际的利弊吗?

集中式连接字符串.常见的做法是什么

最简单的方法是将配置文件保存在一个项目中,并将该配置文件作为"链接"添加到其他项目中。

您也可以在单独的配置文件中将连接字符串与应用程序配置分开。并在单独的配置文件中使用连接字符串的引用。这是一个更具体的解决方案。

<configuration>
    <connectionStrings configSource="connections.config"/> 
</configuration>

带有包含的文件connections.config

<connectionStrings>
   <add name="name" connectionString="your conn_string" providerName="System.Data.SqlClient" />
   <add name="name2" connectionString="your conn_string2" providerName="System.Data.SqlClient" />
</connectionStrings>

为此创建一个单独的类库JUST,在类文件中添加连接字符串作为属性。然后,您可以在任何需要数据库连接字符串的应用程序中始终引用此库。

从属性值中检索代码中的连接字符串。然而,使用这种方法,如果您进行任何更改,您将始终需要重新编译代码。