The provider is not compatible with the version of Oracle client sometimes (提供程序与此版本的 Oracle 客户机不兼容)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sundacheng1989/article/details/53117147

其实这个问题很直观,就是你在C#项目中使用的Oracal.DataAcess.dll文件的版本与你电脑上安装的ODAC.EXE(ODP.NET)版本不一致,不论是32位或者是64位平台不一致,还是版本的高低不一致,反正就是不匹配造成了问题。具体的解决办法网上有很多,这里就不再细讲。

 

但是这次我遇到的问题很奇怪。我的机器上都装了多个ODAC.EXE的版本,包括两个64位的,一个32位的,而且明明我在C#中使用的Oracle.DataAccess.dll的版本跟某个ODAC是完全一致的,但是还是抛出了The provider is not compatible with theversion of Oracle client sometimes这个异常,这让我很费解。而且更奇怪的是,这个异常并不是每次都抛出来,时而有时而没有,也就是说,我的代码与数据库的连接,一会能连上一会不能连上,全部靠运气。

 

找了很久,终于找到了问题的根源。因为这是一个遗留的项目,我下载到了本地,看到了这个项目中有圈起来的那几个文件,虽然觉得奇怪,我也没有在意太多。但是正是这几个文件,才造成了上述的问题。当我把这几个文件移除之后重新编译了一下,就一切正常了,能正常连接到数据库。所以,这次总结的道理就是,在有关OracleC#项目中,不要随便引入oci这些文件。(知道此刻我都不知道为什么前人做这个项目的时候会引入这几个文件。)



猜你喜欢

转载自blog.csdn.net/sundacheng1989/article/details/53117147