0

我有应用程序以 32 位模式运行。它尝试使用 Oracle 客户端连接 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;
            }

我打电话时收到 targetinvocationexception

con.Open();

原因,由于应用程序在 32 位模式下运行,因此无法加载 64 位 dll。

我无法更改应用程序模式。我也无法安装 32 位 Oracle 客户端。如何解决这个问题呢

提前致谢

4

1 回答 1

1

.NET 的 Oracle 驱动程序“需要来自 Oracle 的本机”客户端。(存在瘦客户端的不是 Java)

试试即时客户端,它不需要安装。 http://www.oracle.com/technetwork/topics/winsoft-085727.html

此外,您可以尝试使用 ODBC .NET 驱动程序,但将 ODBC DSN 配置为使用 Microsoft 的 Oracle 驱动程序(大多数 Windows 安装程序都有 Microsoft 的 odbc 驱动程序用于 oracle 开箱即用)。再次:
1) 对于 32 位应用程序,您需要 32 位版本的 ODBC
2) oracle 即时客户端应该在搜索路径中可用

在 Windows 64 位中,有用于 32 位和 64 位应用程序的两个版本的 ODBC 管理面板。要运行 32b 版本,请执行 C:\Windows\SysWOW64\odbcad32.exe。

于 2012-08-27T17:14:04.890 回答