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

时间:2014-07-23 09:56:43

标签: c# asp.net oracle

此问题类似于link

link2

我解决了这个问题,但是当我打开新项目 Wcf服务库时,我遇到了同样的问题,而且我之前所做的所有这些改变对我没有帮助。

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

重要,如果我在另一个项目中做同样的事情一切正常,但在WcfServiceLibrary中它不起作用。在WcfServiceApplication中,它也可以工作。

我使用VS2012(4.5)Win7(64),我的Oracle clien 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.

我的代码

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);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

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

对我来说是出现此错误的原因。

  

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

是因为环境变量只有一个安装位置而且是32位安装位置导致错误在使用32位Oracle客户端以64位模式运行时会出现此问题安装的组件。

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

在我的系统位置就像:

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