我在本地安装Oracle8.1的客户端连接报错:System.Data.OracleClient 需要Oracle 客户端软件 8.1.7 或更高版本,然后又安装了Oracle9客户端还是报一样的错。
我在网上找了好多资料,看得都是权限的问题,但是我都试过了,都不行。
我用的window8,vs2012开发环境,Oracle8.1服务端放到另外一个服务器上,我用pl\sql工具连接时正常的,但是用C#连接就报上面的错误。
实在是不知道怎么解决了才到这里来问的,不知道有没有人知道怎么解决这个问题啊!!在线等!急!
最后使用的第三方组件解决的,DataDirect组件,不需要安装oracle客户端
你不用 Asp.Net,使用 Console 程序呢?
还是不行
@wwbgo:
1,程序编译为 x86;
2,连接字符串是否正确;
@Launcher:
1,我改成x86也不行,还是报这个错误:System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本。
2,连接字符串没问题
@wwbgo: 你怎么知道连接字符串没有问题?
@Launcher:
Data Source=ORACLE;Persist Security Info=True;User ID=agent;Password=agent
@wwbgo: 这个别名 ORACLE,你在 oracle 中是怎么配置的?
@Launcher:
ORACLE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.12.131)(PORT = 1521))
)
(CONNECT_DATA =(SERVICE_NAME = ORACLE))
)
@wwbgo: OracleLob lob = new OracleLob();
lob.Write();
lob.Seek Begin;
lob.Read();
测试下。
@Launcher:
大哥,我觉得你的方向错了,我是在数据库连接打开的时候报错的:conn.Open()。
@wwbgo: 如果你觉得我错了,那我就接着告诉你可能出错的地方,就是你的服务器需要安装 8.1.7 或更高版本,你可以通过抓取数据包,看 Open 的时候是否连接服务器并从服务器获取版本信息。如果 Open 时根本就没向服务器发起连接,那么错误就在本地。错误出现本地的话,就有可能是 dll 未加载上,或 x64 和 x86 不匹配,也可能是系统环境变量设置的 Oracle 目录不正确。
因为 OracleLob 会使用 Oci.dll 而又不需要连接服务器,所以,可以用来测试组件安装是否正确。
你可以试试把ora文件夹里的所有文件赋予everyone权限
试过了,没用的,貌似不是权限的问题