关于使用EF6.0框架报错The underlying provider failed on Open.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于使用EF6.0框架报错The underlying provider failed on Open.相关的知识,希望对你有一定的参考价值。

我写了一个EF6.0+MVC4的项目,通过linq查询获取数据,在本机VS上测试没有任何问题,但是我发布到IIS上,点击查询时报错《基础提供程序未能打开》这是通过try catch捕获到的,我在网上也找了许多建议,都不行,比如在一个论坛看到的设置IIS识别为本地系统用户

或者更改链接字符串
<connectionStrings>
<add name="Context" connectionString="Data Source=172.16.1.15;Initial Catalog=DB;Persist Security Info=True;User ID=sa;Password=spgadministrator" providerName="System.Data.SqlClient" />
</connectionStrings>
以上都不行

唉。。。。搞了一个礼拜,一点辙都没了。分不多了,求救。
我已经在网上对答案整天戳,并且到目前为止,还没有任何的建议

这有很多种可能
1.确定连接字符串正确的话,再检查下WebConfig中EF版本与项目实际引用的是不是一致
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
2.试一试你写的sa和password能不能成功登录到数据库追答

抱歉,这个问题我也解决不了。
我之前遇到过类似问题,不过改成localsystem就好了,我觉得你这个问题不是出在EF上,试着从别的角度排错看看。

参考技术A 我觉得应该贴一下代码,我一直用EF和MVC,做过那么多应用,一直没有遇到过偏激问题,我怀疑对连接使用了未释放的问题追问

参考技术B EF在操作数据库时要反复链接、断开数据库,如果连接字符串是windows 服务验证,而不是用的用户名和密码,那么尝试访问数据库的用户是NT
AUTHORITY\NETWORK SERVICE,这厮权限不够大,导致登录失败;
在创建数据模型时不要以window身份创建,先在sql-server中县里新账户,用新账户创建数据模型就可以解决,WebConfig配置文件中换上对应的新账户就行。

以上是关于关于使用EF6.0框架报错The underlying provider failed on Open.的主要内容,如果未能解决你的问题,请参考以下文章

vs2013, EF6.0.0.0 使用Migrations来更新数据库时报错

### The error occurred while setting parameters, MyBatis框架使用报错原因及解决办法

用Struts2框架报错:The Struts dispatcher cannot be found

关于springboot上传文件报错:The temporary upload location ***is not valid

关于报错stale element reference: element is not attached to the page document处理

关于Vue报错(Property or method “xxx“ is not defined on the instance but referenced during render.)防踩坑