以64位模式运行,使用32位Oracle服务

本文关键字:32位 Oracle 服务 使用 64位 模式 运行 | 更新日期: 2023-09-27 18:14:15

这个问题类似于链接

link2

我修复了这个问题,但是当我打开新项目Wcf服务库时,我又遇到了同样的问题,并且我之前所做的所有这些更改都没有帮助我。

我尝试了所有我以前做过的,甚至更多,但它没有帮助。

这是重要的说,如果我在另一个项目做同样的工作都很好,但在WcfServiceLibrary它不工作。在WcfServiceApplication中它也工作。

我使用VS2012(4.5) Win7(64),我的Oracle客户端32,但在其他项目中这不是问题。

也许是因为Wcf库项目,我不知道。我只是建立服务,保存数据从数据库,我得到错误连接到数据库。

Error: Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.

My code

using (OracleConnection con = new OracleConnection())
{
    con.ConnectionString = "User Id=zxc;Password=zxc;Data Source=NXE";
    con.Open();//here i get error
    OracleCommand cmd = new OracleCommand();
    cmd.Connection = con;
    cmd.CommandText = "select * from " + Table;
    int rowsUpdated = cmd.ExecuteNonQuery();
    OracleDataReader reader = cmd.ExecuteReader();
    String DataFromORL = "";
    int row = 0;
    while (reader.Read() && row < 50)
    {
        row++;
        if (reader.HasRows)
        {
            DataFromORL += reader.GetInt32(0);
        }
    }
}

以64位模式运行,使用32位Oracle服务

我也有同样的问题。对我来说,通过做以下事情解决了问题。在此之前,请检查您是否安装了32位和64位Oracle客户端,以使其在两个环境中都可用。

告诉我得到这个错误的原因。

错误:尝试加载Oracle客户端库抛出BadImageFormatException。当在64位模式下运行且安装了32位Oracle客户端组件时,会出现此问题。

是由于环境变量只有一个安装位置,它是32位的安装位置,这就是为什么错误是这个问题将发生在64位模式下运行32位Oracle客户端组件安装。

所以,为了解决这个问题,我添加了64位的安装位置,并重新启动了我的visual studio。如果它不工作,尝试重新启动系统也,我们应该添加两个bin目录可用的Oracle客户端安装位置,我们在安装Oracle客户端时指定。

在我的系统位置如下:

32-bit C:'app'client'<user>'product'12.1.0'client_2'bin
64-bit C:'app'client'<user>'product'12.1.0'client_1'bin