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

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

    System.Exception: SELECT CODE,NAME,LEVEL FROM SYSUSER WHERE CODE=12345u000du000a尝试加载 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
    转载请注明出处,谢谢!

     

  • 相关阅读:
    算法的时间复杂度与空间复杂度
    递归八皇后问题(回溯算法)
    vue之插件
    递归之打印、阶乘、九九乘法表、迷宫问题
    选择排序
    归并排序
    sql 字符保留汉字处理
    JAVA filter map groupingBy Collectors
    2021最新版IDEA激活
    WPF 程序退出,进程依然存在
  • 原文地址:https://www.cnblogs.com/imdeveloper/p/10652511.html
Copyright © 2011-2022 走看看