运行时报:尝试加载 Oracle 客户端库时引发 BadImageFormatException,如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题
运行环境为:
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,选择该选项后问题终于解决。