Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Connections.config中基于不同机器的多个连接字符串[c#]_C#_Asp.net_.net_Database_Connection String - Fatal编程技术网

Connections.config中基于不同机器的多个连接字符串[c#]

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 当前问题:当我们将本地连接字符串更改

对于我们的项目(在git repo中),我们有一个Connections.config,其中包含到本地数据库的连接字符串。但是,对于服务器中的在线存储库,它有自己的CI测试,我们必须使用不同的连接字符串,以便在线主分支代码可以连接到CI的数据库以执行测试

我们如何在Connections.config中有多个连接字符串,以便根据正在执行的代码选择与数据库的适当连接

注意:我们不能使用.gitignore选项,这样就不会更改Connections.config

当前问题:当我们将本地连接字符串更改推送到主分支时,联机连接字符串将设置为本地数据库连接,同时覆盖服务器测试的连接字符串。我知道将Connections.config放在gitignore中应该可以解决这个问题,但是我们不能将这个文件放在gitignore中(对于某些业务决策)。那么,是否有一种方法可以在配置中包含多个连接字符串,以便根据正在执行的机器使用不同的连接

本地连接字符串的示例:

<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中。然后使用正确的值设置环境。对于本地开发,请使用文件存储您的值
  • 如果您使用的是配置文件,则不应使用,因为存在安全风险

在文件中放入两个连接字符串(两个
添加具有不同
名称
值的
元素),然后在应用程序中编写一些代码以决定使用哪一个。在代码中使用连接字符串,使其动态,以便其根据机器名称(服务器变量)调用正确的服务器名称。。