您的位置:首页 > 数据库 > Oracle

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

2009-05-30 01:01 274 查看
环境:机器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上不用安装任何客户端。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: