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

问题描述:

我正在用C#构建ASP.NET应用程序,我想连接到oracle数据库。
我在我的64位Microsoft Window Server 2008机器的应用程序中添加了参考Oracle.DataAccess。 我也有我的机器上安装ODAC(Oracle数据访问组件) 和Oracle.DataAccess.dll也存在这个路径无法加载文件或程序集'Oracle.DataAccess错误

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

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

Could not load file or assembly 'Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.

+1

您是否尝试安装32位版本? – 2013-03-08 12:29:06

+0

不,我已经安装了64位版本 – 2013-03-08 12:30:01

+0

@FelipeOriani我该怎么办?其实我正在使用64位机器。 – 2013-03-08 12:48:34

据我所知,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,你只需要提供TNS在connection string的数据源领域,它3264位工作正常。

+0

x64 Oracle.DataAccess程序集也可以工作,因为我已经在另一个版本上使用了x64,它工作正常。 我无法确定它在我的系统中遇到的原因。 @felipe Oriani非常感谢你解决我的问题。 – 2013-03-11 05:14:26

+0

Oracle.DataAccess程序集有32位和64位版本,它们都可以正常工作。我使用了两个版本。 – 2013-07-18 10:54:38

+0

它仍然出现在我的机器上。我的机器也是64位 – 2015-08-24 05:38:10

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

+0

。 – 2013-03-08 12:31:14

基本相同的错误

失踪ODP.NET安装组件按照从我的最后一个职位,另一个答案的参与者。

您检查GAC吗?

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

你没有做任何进展。

把Oracle.DataAccess.dll的正确版本和位到应用程序/ bin文件夹,使局部参考。它解决了很多问题。

+1

我确信Oracle.DataAccess.dll的正确版本。我试图把本地引用,但它遇到以下错误。 无法加载文件或程序集Oracle.DataAccess或其某个依赖项。试图加载格式不正确的程序。 – 2013-03-08 12:44:46

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

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

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