首页 > 数据库技术 > 详细

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

时间:2019-04-04 00:41:07      阅读:266      评论:0      收藏:0      [点我收藏+]

远程连接服务器的数据库调试WCF程序时,可以正常访问数据库,但将程序发布成站点部署在数据库所在的服务器之后,一直报错,通过try/catch捕获得到以下报错信息:

System.Exception: SELECT CODE,NAME,LEVEL FROM SYSUSER WHERE CODE=12345\u000d\u000a尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

根据报错信息可以初步判断,出错原因是:项目中连接Oracle用的System.Data.OracleClient和服务器上安装的Oracle客户端位数不同。

本人根据网上提供的各种方法尝试了很久:

  1. 将程序的平台目标改为X86
  2. 安装Oracle 11gR2 32-bit的客户端
  3. 在工具网站中设置对网站和项目使用IIS Express64位版
  4. ....

但都没能解决问题。

最终我想既然是和程序的位数有关,于是死马当做活马医,在IIS中将程序所在应用程序池中的“启用32位应用程序”改为false,最终解决了问题。

技术分享图片

此处建议新建一个应用程序池,不要直接修改DefaultAppPool,防止其它程序使用时需要启用32位应用程序。

当然,可能每个人出现该错误的原因都有所不同,所以这里只是提供一种解决问题的思路,具体应根据实际情况寻找解决方案。

 

原文地址:https://www.cnblogs.com/imdeveloper/p/10652511.html
转载请注明出处,谢谢!

 

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

原文:https://www.cnblogs.com/imdeveloper/p/10652511.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!