此问题类似于link
我解决了这个问题,但是当我打开新项目 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);
}
}
}
答案 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