【问题标题】:Oracle Database Connectivity in Asp.net Vs 2010 (Attempt to load Oracle client libraries threw BadImageFormatException.)Asp.net Vs 2010 中的 Oracle 数据库连接(尝试加载 Oracle 客户端库会引发 BadImageFormatException。)
【发布时间】:2020-05-14 13:46:50
【问题描述】:

我已安装 Oracle Client 12 c 并添加参考 System.Data.OracleClient

string oradb = "数据源=(DESCRIPTION =(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST = ...)(PORT = 1522) ))(CONNECT_DATA =(SERVICE_NAME = ****)));用户 ID=****;密码=****Unicode=True";

下面的实现代码

        OracleConnection con = new OracleConnection(oradb);
        OracleCommand cmd = new OracleCommand();
        cmd.CommandText = "SELECT AUXPTYPE,AUXPTYP2 FROM SILAS14_CDS_DIRECTORY WHERE CDSID=RRRRR";
        cmd.Connection = con;
        con.Open();
        OracleDataReader dr = cmd.ExecuteReader();

错误获取:尝试加载 Oracle 客户端库引发 BadImageFormatException。在安装了 32 位 Oracle 客户端组件的 64 位模式下运行时会出现此问题。

【问题讨论】:

  • nobody ever read exception messages :( “在安装了 32 位 Oracle 客户端组件的 64 位模式下运行时会出现此问题” 表示您已安装 32 位 Oracle客户端组件并尝试在 64 位模式下运行它们。

标签: c# asp.net oracle


【解决方案1】:

选项 1:您可能需要使用 Oracle Client 12 c - 64 位安装另一个实例,然后才能正确运行代码。

选项 2:或者,您可以尝试将 Visual Studio 中的项目构建类型从 Any CPU/x64 更改为 x86,以便在 32 位模式下调用 DB。

要更改构建类型:在 Visual Studio 中右键单击项目 -> 选择 Build 选项卡 -> 平台目标 -> x86

【讨论】:

  • 我已经做了所有这些事情,但这不起作用,我已经安装了 winx64_12201_client Oracle 客户端
  • 安装64位Oracle客户端后,请去掉System.Data.OracleClient的引用,添加64位版本的引用。如果运气不好,请参考:LINK
猜你喜欢
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 2019-05-15
  • 1970-01-01
  • 2020-02-09
  • 1970-01-01
  • 2015-07-25
  • 2013-05-02
相关资源
最近更新 更多