Oracle数据库在.net连接问题总结

环境:机器A:win2003, .net2.0  机器B:win2003, Visual Studio 2005

1、A装有oracle10g,B装有oracle11g Client,带有ODP.net,开发一个ASP.NET,其中引用了Oracle.DataAccess.dll(2.111.6.20)在VS2005中连接正常。

2、在A上部署ASP.NET,连接出错,出现"The provider is not compatible with the version of Oracle client" 错误

3、在A上加装oracle11g Client,然后部署ASP.NET,不需在bin中加入Oracle.DataAccess.dll,在A上可以正常连接

4、把B上oracle11g Client换成oracle10g InstantClient,并且把VS里的Oracle.DataAccess.dll更换成11g版本,出现出现{"“Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常。"}错误。其实错误信息为The provider is not compatible with the version of Oracle client

5、把VS2005中的Oracle.DataAccess.dll更换成10g版本,出现无法加载   DLL   (OraOps10.dll),把oracle10g InstantClient换成oracle10g Client后仍然是这问题,重启机器后却出现加载出错,没有权限,然后按照:右键点击Oracle   Home   文件夹(如:D:\oracle\product\10.1.0\Client_1),进入属性,进入安全,选择Authenticated     Users   用户组,检查下面的权限设置,确保具有读取和执行的权限(将Read     and     Execute     的勾去掉,然后又勾上)。 问题解决

--6、无论使用哪个版本的客户端,在B上,只要设置好path,以及PL/SQL Develop参数都可以连接A。

7、使用TNS_ADMIN可以指定tnsnames.ora路径。

结论, InstantClient不能用来部署ASP.NET, 其不含.NET驱动;oracle10g数据库可以和oracle11gClient并存在一台机器上。

另外,不知如果在B上用10gClient开发的话,可不可以在A上不用安装任何客户端。

作者:aXen
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/ningj3/p/1491938.html