在登录系统,通过linq查询时发生错误The underlying provider failed on Open.
使用entityframe4,部分电脑正常。个别一登陆就报这个错,请大咖们赐教。
错误信息要翻译吗?
出现这个错误,明显是数据库连接失败导致的。
既然部分电脑正常,说明你的数据库连接字符串本身应该是没问题的。
还有这个问题,那么:不正常的电脑能使用你提供的数据库连接字符串连接到数据库吗?可能是不在一个网段时使用了本地的IP地址,也可能这些电脑在防火墙层次被屏蔽了。
一查询就报错,在一个网段的。按你这么说就是防火墙的问题了?
@wcsprogram: 很可能。
你可以:
1、在这些电脑上安装SQL管理器连接数据库看是否成功(这个复杂点)
2、写一个简单的控制台或桌面应用,不要走什么EF,就直接用SqlConnection连接数据库,查看结果
此外,你还可以通过minisniffer跟踪下是否有对外访问。
@519740105: 已经关了防火墙还是一样报错,晚上写个程序,明天再试下,是否可以连接数据库。
在微软论坛上找的,希望对你有用
http://social.technet.microsoft.com/Forums/zh-CN/091b1eac-4ed6-43b8-b184-a713d1f2b9eb/entity-framework-the-underlying-provider-failed-on-open
找台不能连接的电脑看能不能通过你的数据库连接字符串链接数据库。
哎,我有时候也报这个错,这个跟数据库连接没关系,是并发的问题,我本地都偶尔出现这个问题,也在找解决办法。
The context cannot be used while the model is being created. This exception may be thrown if the context is used inside the OnModelCreating method or if the same context instance is accessed by multiple threads concurrently. Note that instance members of DbContext and related classes are not guaranteed to be thread safe.
还有这个错误也是偶尔出现,不好意思,借贵地提问了。
这也是用EF吗?是不是程序里多实例了上下文对象?
@wcsprogram: 是的ef6,一个action中多个上下文,如果狂刷一个页面就会出现这个问题!
数据库链接字符串权限不够 我用windows服务验证就报这个错,改用户名和密码连接就行
确实修改连接字符串的为账号密码就能解决
我也遇到这个错误了。
原来是数据库离线了
Msg 942, Level 14, State 4, Line 1
Database 'student' cannot be opened because it is offline.