我有应用程序在32位模式下运行。它尝试使用Oracle Client连接oracle DB。 Oracle客户端以64位运行。
string connectionString = @"Data Source=" + oracleDBName + ";User id=" + oracleDBUserId +";Password=" + oracleDBPwd +";";
OracleConnection con = new OracleConnection(connectionString);
try
{
con.Open();
if (con != null)
{
con.Open();
}
return true;
}
catch (OracleException)
{
return false;
}
我在调用
时遇到targetinvocationexceptioncon.Open();
原因,由于应用程序以32位模式运行,因此无法加载64位dll。
我无法更改应用程序模式。我也无法安装32位Oracle客户端。如何解决这个问题
先谢谢
答案 0 :(得分:1)
用于.NET的Oracle驱动程序“需要Oracle的本机”客户端。 (这不是Java,瘦客户端存在)
尝试即时客户端,不需要安装。 http://www.oracle.com/technetwork/topics/winsoft-085727.html
此外,您可以尝试ODBC .NET驱动程序,但配置ODBC DSN以使用Microsoft的Oracle驱动程序(大多数Windows安装都有用于oracle的microsoft的odbc驱动程序开箱即用)。
再次:
1)对于32位应用程序,您需要32位版本的ODBC
2)oracle即时客户端应该在搜索路径中可用
在Windows 64bit中,有32个版本的32位和64位应用程序的ODBC管理面板。要运行32b版本,请执行C:\ Windows \ SysWOW64 \ odbcad32.exe。