在64位的windows操作系统中安装了64位的Oracle后,使用C#通过Oracle.DataAccess.dll操作Oracle数据库时,
有时候会出现如下一些错误:” 无法加载
DLL“OraOps10.dll”:
找不到指定的模块。”而无法连接Oracle。如果是做成windows服务调用,
还可能会出现如下错误事件日志:“事件ID:1026,事件来源:.NET
Runtime”,和“事件ID:1000,事件来源:Application Error,错误模块名称:
KERNELBASE.dll”。
这可能就是C#程序中调用的Oracle.DataAccess.dll版本不是64位,且服务器上没有装64位版本的ODP.NET。
处理方法:
1. 下载64位的ODP.NET(官网有ODAC121012Xcopy_x64.zip文件下载,地址:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html),下载的时候要注意其中的“64-bit Oracle Data Provider for .NET”是否与开发使用的.netframework版本一致。
2. 安装ODP.NET,大概步骤如下:
(1) 将ODAC112021Xcopy_x64.zip解压到磁盘中的某个目录,如:“D:\software\ODAC121012Xcopy_x64.zip”,然后在命令行进入这个目录,输入如下命令:“install.bat all C:\odp.net myhome(install all components)”。
(2) 运行上述命令后,将自动将所有的文件拷贝到C:\odp.net目录下,接下来,在命令行进入C:\odp.net目录,运行一下命令:“configure.bat all myhome(configure all component) ”。上述命令将自动想GAC注册ODP.NET相关的dll,同时在vs2010中添加引用的时候能看到想要版本的Oracle.DataAccess.dll。