无法加载文件或程序集’Oracle.DataAccess错误

我用C#构建ASP.NET应用程序,我想连接到oracle数据库。
我在我的64位Microsoft Window Server 2008计算机上的应用程序中添加了对Oracle.DataAccess引用。 我还在我的机器上安装了ODAC(Oracle数据访问组件),并且此路径上也存在Oracle.DataAccess.dll

C:\ WINDOWS \ Microsoft.NET \assembly\ GAC_64 \ Oracle.DataAccess

但当我试图连接我遇到以下错误:

无法加载文件或程序集“Oracle.DataAccess,Version = 4.112.3.0,Culture = neutral,PublicKeyToken = 89b483f429c47342”或其依赖项之一。 该系统找不到指定的文件。

据我所知, Oracle.DataAccess程序集只能使用32位,我也有64位的这种问题,它确实无法正常工作。 我的解决方案是从GAC中删除64位并在GAC上安装32位。 我还删除bin文件夹中的任何.dll文件到我的应用程序在GAC上找到程序集。

如果您的机器和操作系统是64位没有问题,32位版本将正常工作。

UPDATE

我建议你看看Official Oracle ODP.NET, Managed Driver ,这是一个比Oracle.DataAccess更好的版本。 此Managed Driver不需要计算机上的Oracle Client ,您只需要在connection string的DataSource字段上提供TNS,它可以在32位和64位上正常工作。

您需要同时安装x64和x86版本的Oracle,因为某些东西(我认为它是Visual Studio)在调试时使用x86版本。

在VS2010中,我将平台目标更改为x64,此错误消息消失。

基本相同的错误

根据我和其他答案参与者的最新post缺少ODP.NET安装组件。

你查了一下GAC吗?

如果您没有看到Oracle.xxx文件夹,

你没有取得任何进展。

将Oracle.DataAccess.dll的正确版本和位放入application / BIN文件夹并进行本地引用。 它解决了许多问题。

要运行您的网站,您必须使用IIS,因为visual studio的开发服务器只能以32位模式运行。
在IIS应用程序池中,将应用程序设置为以64位运行。 (设置为高级设置)

要解决此错误,我在IIS中设置我的应用程序池以允许32位应用程序。 打开IIS管理器,右键单击应用程序池,然后选择“高级设置” – >将“启用32位应用程序”设置为True。 它对我来说很好。