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

解决方案 »

  1.   

     如果应用程序项目的“平台目标”属性设置为 AnyCPU,则编译后的应用程序在 64 位或 32 位模式中均可运行。 如果采用 64 位应用程序运行方式,则实时 (JIT) 编译器便会生成 64 位本机代码。 如果应用程序依赖于某个 32 位托管组件或非托管组件,则在 64 位模式中无法加载该组件。 若要纠正此问题,请将项目的“平台目标”属性设置为 x86,然后重新编译。
      

  2.   

    这个问题我也遇到过,也蛋疼了好久。 
    首先你要下载兼容64位的instantclient,替换dll文件就行了。 
      

  3.   

    VS里面只能使用32位的客户端,发布到iis,应用程序池选择64位,可以使用64位的客户端
      

  4.   

    把你编译后的exe程序用命令corflags \32bit+执行下就可以了。
      

  5.   

    重新在网站上下载一个64位oracle安装文件进行安装
      

  6.   

    我也遇到相同的问题,win764 +oracle 11g ,安装成功后,测试可以连接,用pl/sql也可以连接成功
    就是在程序当中,不能连接,连接后就报这个问题,
    <add name="ConnectionString" connectionString="Data Source=lsorcl;User ID=system;Password=Admin;Unicode=True"/>
     try
                {
                    OracleConnection sqlconn = new OracleConnection(connstr);
                    sqlconn.Open();
                    return sqlconn;
                }
                catch (Exception ex)
                {
                    return null;
                }