1、通过一个叫Devart for oracle 的组件访问数据库。
2、使用的Entity Framework4.0访问数据库
3、XP系统,并没有安装oracle客户端
在登录系统,通过linq查询时发生错误,the underlying provider failed on open,innerexception的信息是ora-12571。
在部分XP系统中出现了这个问题,有两台电脑重装了系统后,装的是同一个Ghost系统,但是有一台问题解决了,另一台的问题依旧,搞了好几天实在是没有眉目,特意来请教各位高手。
在网上查the underlying provider failed on open这个错误说是因为使用entity Framework出现了多个连接,但是通过检查代码也没发现。打印Debug信息也没问题
实在是没辙了,有多少分给多少分
底层提供者打开失败。
看这个信息,是你的数据库服务驱动不存在或连接数据库失败导致的。
先确认,这台服务器能连接到数据库服务器(使用简单的CONNECTION的OPEN),如果能连接,继续检查驱动程序。
首先谢谢你的回答。是客户端程序,有的可以有的不可以,不能够连接的仿佛都是比较集中的一个单位的。
另外怎么检查驱动程序能赐教么,我在底层这方面比较小白,您别嫌烦,呵呵
@厄尔尼诺: 应该翻译说“基础服务打开失败”更适合。
错误信息是这个,但错误不能就锁定在这个点上,也许是别的原因导致的,这个是不能确定的。
从你提供的错误信息来看,就是我说的那两种可能性很大。
你可以按照我的步骤去操作,跟踪下运行,检测异常等。
我对你说的第三方组件不熟悉(也没用过ORACLE)。
首先,你写一个简单的程序,什么都不要做,就是调用第三方的程序实现数据库连接的打开与关闭操作。你看下是否能打开。
这里面:你的第三方程序是否授权连接服务器也是一个可能,然后电脑是否能正确连接到ORACLE数据库服务器也是一种可能(这个好检测,通过TELNET IP PORT的形式就能检测,通了,就是能连接数据库的)。
就是链接数据库字符串不对.
是权限问题吧
什么权限问题
大哥能告诉我是什么权限问题么,
我今天也碰到这个问题了,我的数据库是放在程序根目录下的App_Data文件夹下,结果在运行的时候就报了那个错误,然后我把数据挪到其他地方后再连接就不报错了
System.Data.EntityException: The underlying provider failed on Open
客户端以管理员身份运行:netsh winsock reset命令,作用是重置 Winsock 目录。如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令来重置Winsock目录借以恢复网络。这个命令可以重新初始化网络环境,以解决由于软件冲突、病毒原因造成的参数错误问题。 netsh是一个能够通过命令行操作几乎所有网络相关设置的接口,比如设置IP,DNS,网卡,无线网络等,Winsock是系统内部目录,Winsock是Windows网络编程接口,winsock工作在应用层,它提供与底层传输协议无关的高层数据传输编程接口,reset是对Winsock的重置操作。当执行完winsock的命令重启计算机后,需要重新配置IP
我用这个方法解决了问题