本机机器Win7 64位旗舰版,今天调试一个使用Oracle数据库的webservice,在我的VS2010中运行,一切正常,后来想把它发布到本机的IIS中去,发布上去以后,调用webservice,发现报错:
System.InvalidOperationException: 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。
在网上找了解决方案,
1.VS2010里面右击项目,选择属性,在生成里面将平台从AnyCPU 改为对应的平台,重新编译发布
本例中,我将平台改为了X86但是编译报错,这个方法不适合我
2.在IIS中将应用程序池的高级设置,是否启用32位应用程序,默认为False,改为True.
我使用此方法,修改后工作正常。
报错大致是,采用64位方式访问32的数据库吧,还有方案时候在IIS所在的系统上面,安装32位的instantclient-basic-nt-11.2.0.3.0 这个方式我没有试验。