如何解决基于不同计算机的Connections.config中的多个连接字符串[c#]
对于我们的项目(位于git repo中),我们有一个Connections.config,其中包含到本地数据库的连接字符串。但是,对于服务器上的在线存储库(在CI上有自己的测试),我们必须使用其他连接字符串,以便在线主分支代码可以连接到CI的数据库以执行测试。
我们如何在Connections.config中具有多个连接字符串,以使正在执行的代码根据计算机选择与数据库的适当连接?
注意:我们不能使用.gitignore选项,以使Connections.config保持不变。
当前问题:当我们将本地连接字符串更改推送到master分支时,在线连接字符串将设置为我们的本地数据库连接,同时覆盖服务器测试的连接字符串。我知道将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中。然后使用正确的值设置您的环境。对于本地开发,请使用secrets文件存储您的值。
- 如果您使用的是配置文件,则不应该这样做,因为存在安全风险
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。