Connections.config中基于不同机器的多个连接字符串[c#]
对于我们的项目(在git repo中),我们有一个Connections.config,其中包含到本地数据库的连接字符串。但是,对于服务器中的在线存储库,它有自己的CI测试,我们必须使用不同的连接字符串,以便在线主分支代码可以连接到CI的数据库以执行测试 我们如何在Connections.config中有多个连接字符串,以便根据正在执行的代码选择与数据库的适当连接 注意:我们不能使用.gitignore选项,这样就不会更改Connections.config 当前问题:当我们将本地连接字符串更改推送到主分支时,联机连接字符串将设置为本地数据库连接,同时覆盖服务器测试的连接字符串。我知道将Connections.config放在gitignore中应该可以解决这个问题,但是我们不能将这个文件放在gitignore中(对于某些业务决策)。那么,是否有一种方法可以在配置中包含多个连接字符串,以便根据正在执行的机器使用不同的连接 本地连接字符串的示例:Connections.config中基于不同机器的多个连接字符串[c#],c#,asp.net,.net,database,connection-string,C#,Asp.net,.net,Database,Connection String,对于我们的项目(在git repo中),我们有一个Connections.config,其中包含到本地数据库的连接字符串。但是,对于服务器中的在线存储库,它有自己的CI测试,我们必须使用不同的连接字符串,以便在线主分支代码可以连接到CI的数据库以执行测试 我们如何在Connections.config中有多个连接字符串,以便根据正在执行的代码选择与数据库的适当连接 注意:我们不能使用.gitignore选项,这样就不会更改Connections.config 当前问题:当我们将本地连接字符串更改
<connectionStrings>
<add name="sqlServer"
providerName="System.Data.SqlClient"
connectionString="Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True;" />
</connectionStrings>
服务器上用于测试的连接字符串示例:
<connectionStrings>
<add name="sqlServer"
providerName="System.Data.SqlClient"
connectionString="Data Source=localhost;Initial Catalog=TestDatabase;Integrated Security=True;" />
</connectionStrings>
- 如果您使用的是Azure,则可以将它们存储在KeyVault中。然后使用正确的值设置环境。对于本地开发,请使用文件存储您的值
- 如果您使用的是配置文件,则不应使用,因为存在安全风险
添加具有不同名称
值的元素),然后在应用程序中编写一些代码以决定使用哪一个。在代码中使用连接字符串,使其动态,以便其根据机器名称(服务器变量)调用正确的服务器名称。。