很久以前,有人认为,在我们的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的所有漂亮解决方案都无法使用。
答案 0 :(得分:0)
首先,您必须在web.config中包含相同的连接字符串,且连接字符串值为空。然后,您可以从“应用程序设置”部分覆盖。
`<connectionStrings>
<add name="DefaultConnection" connectionString="" />
<add name="CMSEntities" connectionString=""
providerName="System.Data.EntityClient" />
</connectionStrings>`
对于实体框架,将providerName指定为“ System.Data.EntityClient”,设置选择 Custom 而不是SqlServer