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

时间:2023-03-08 15:47:00

运行环境为:

Windows Server2012

Oracle11g  32位数据库+客户端

IIS发布后提示错误信息:

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

解决办法:

原因分析就是因为我的程序运行为64位模式,而数据库访问和Oracle客户端是32位。需要把这两个版本一致就可以。

第一种解决办法:

既然程序运行模式为64位,则把Oracle客户端安装64位就可以解决,但是实际在解决过程中,因为Oracle数据库安装的版本为32位,自带的客户端也是32位,Oracle支持32位客户端和64位客户端同时并存,理论上是可以解决该问题的。

但是需要下载客户端并且还需要设置,折腾一番没搞定放弃了。

第二种解决办法:

就是把Web应用程序编译的时候选择x86模式。具体为点击你的项目,右键-->属性,弹出窗口,选 生成,看到“平台”,下拉框中选择 x86,全部DLL文件都选择该模式。结果还是不能解决该问题。

最后解决办法:

最后想起IIS在发布的时候,应用程序池有个设置选项,可以选择32位为True,选择该选项后问题终于解决。