繁体   English   中英

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

[英]Multiple connection strings in Connections.config based on different machines [c#]

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM