尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题

时间:2024-03-31 16:11:24

问题:尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

 

问题描述:在WIN7 64位操作系统上,用VS2010运行一个网站项目,在连接ORACLE数据库时出现上述错误。网上搜索了相关的帖子,大部分网友的问题是:在安装了32ORACLE客户端的机器上调试程序时,连接服务器上64ORACLE数据库,出现了上述的错误。我是安装了ORACLE 11gR2 32位版本的客户端,连接服务器上ORACLE 11gR2 64位版本数据库时,出现了上述问题。

尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题 

问题解决过程:

之前因为32PL/SQL连接64位数据库,已下载instantclient-basic-win32-10.2.0.5

解压后复制到客户端安装目录E:\app\Administrator\product\目录下

 

并将系统环境变量PathORACLE相关的值由E:\app\Administrator\product\11.2.0\client_1\bin; 改为

E:\app\Administrator\product\instantclient_10_2;

 

这时项目启动出现错误:

ORA-12154: TNS:could not resolve the connect identifier specified

尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题 

于是增加系统环境变量TNS_ADMIN,值为

E:\app\Administrator\product\11.2.0\client_1\network\admin

再次启动项目,已经可以连接数据库了。

 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题

备注:如果你的情况跟我一样,可以尝试下我的方法。