c# - 在数据层中获取 Azure 连接字符串
问题描述
很久以前,有人认为,在我们的 web api 的数据层中添加硬编码的连接字符串是个好主意。由于这个遗留问题,我无法删除这个类。此类继承 IDbContextFactory 并且它需要检索一个连接字符串,该字符串现在是硬编码的。为了使它更加...动态,我想为此使用 Azure 连接字符串。
1 我将连接字符串添加到应用服务的配置中
2 根据很多网站,我可以添加以下代码来检索连接字符串:
connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
这不起作用;它给出了“未设置对象实例的对象引用”。错误。
其他人说您需要添加前缀和环境:
connectionString = Environment.GetEnvironmentVariable("SQLCONNSTR_DefaultConnection");
显然,这也不起作用。是的,我在下拉列表中选择了 sql server。
正如有人建议的那样,我尝试的另一件事是将连接字符串添加到 web.config。然后再次; 这没有用。
很高兴知道这是 .NET 4.6.2,因此 .NET Core 1/2 的所有漂亮解决方案都不起作用。
解决方案
首先,您必须在 web.config 中包含具有空 connectionString 值的相同连接字符串。然后您可以从应用程序设置部分覆盖。
`<connectionStrings>
<add name="DefaultConnection" connectionString="" />
<add name="CMSEntities" connectionString=""
providerName="System.Data.EntityClient" />
</connectionStrings>`
对于实体框架,将 providerName 指定为“System.Data.EntityClient”并设置选择自定义而不是 SqlServer
推荐阅读
- reactjs - 在条件 HTML 链接上反应意外的令牌
- compilation - “内存中二进制内存映像”是什么意思?
- windows - 无法从 echo $PATH 中删除路径
- c++ - 为什么在 Main 中正常运行的代码在函数内部运行不正确?(C++)
- c++ - C++ 中的适配器模式返回分段错误
- mongodb - WSo2 tls 连接到 mongodb 数据服务
- java - slf4j 找不到 log4j2 jar
- vue.js - 如何在vue组件的样式标签中添加if
- discord.js - 我正在尝试发出命令来显示不和谐机器人在多少台服务器上,但得到错误“消息未定义”
- apache-kafka - Kafka Manager - 需要跟踪使用它的用户以确保安全