System.Data.OracleClient不能与64位Oracle客户端一起工作

本文关键字:Oracle 客户端 一起 工作 64位 Data OracleClient 不能 System | 更新日期: 2023-09-27 18:08:40

我设计了一个c#应用程序来连接Oracle数据库并更改模式用户的密码。我的参考程序集是System.Data.OracleClient从位置:"C:'Program Files (x86)' reference Assemblies'Microsoft'Framework.NETFramework'v4.5'System.Data.OracleClient.dll"

我用来设计/测试应用程序的平台是这样的:1. 64位Windows 7平台。2. 32位。net Frameworkv4.53.32位Oracle 10g客户端

我需要这个应用程序运行为64位Oracle客户端太。但是,当我将二进制文件传输到安装了64位Oracle 11g的机器时,我得到了这个错误:"尝试加载Oracle客户端库抛出BadImageFormatException。在64位模式下运行,安装32位Oracle客户端组件时,会出现此问题。"

我不知道如何解决这个问题。请建议如果我需要做任何代码更改或汇编参考。我读了很多类似的论坛,但找不到任何有用的东西。请帮助!

System.Data.OracleClient不能与64位Oracle客户端一起工作

首先,不推荐使用提供者System.Data.OracleClient。微软不再支持它了,你应该考虑使用Oracle提供的Oracle.DataAccessOracle.ManagedDataAccess

我的建议是在您的开发机器上安装32位和64位Oracle客户端,然后您可以测试和构建任何东西。下面是如何做到这一点的说明:在一台机器上安装x86和x64 Oracle Client

x86 Oracle客户端可以连接64位Oracle数据库,反之也没有问题

我在一台Windows 10电脑上也遇到了同样的问题。我将项目从我的旧计算机复制到新计算机上,都是64位的,并在新机器上安装了64位的Oracle Client。我得到了同样的错误信息,但在尝试了许多解决方案都没有效果之后,实际对我有效的是:

在你的Visual Studio中(我的是2017),点击

工具>选项>项目和解决方案> Web项目

在该页上,选中选项:使用64位版本的IIS Express用于网站和项目

试试这个:

  1. Open Oracle Net Configuration Assistant
  2. 在本地网络服务名称配置中选择单选按钮选项,然后单击下一步
  3. 在重新配置中选择单选按钮选项,然后单击下一步
  4. 选择要重新配置的网络服务名称,ORACLR_CONNECTION_DATA或ORCL,然后单击Next
  5. 输入您的服务名称,如果您安装oracle的服务名称为ORCL,则将ORCL写入该字段,然后单击下一步
  6. 选择要使用的协议,例如,选择TCP,然后单击Next
  7. 输入安装oracle数据库引擎(服务)的主机名,例如,安装在您的台式机或笔记本上。然后填写为本地主机,并填写您的端口号(选择选项使用1521的标准端口号),或者如果使用其他端口,填写端口号然后单击next。
  8. 选择是执行测试,如有必要,更改用户登录然后点击next
  9. 如果没有配置其他网络服务名称,选择"否",然后单击下一步

你应该下载,提取并安装ODTwithODAC183.zip和BuildTools_Full.exe,如果你想使用连接。net框架从MS Visual Studio