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


我用C#构建ASP.NET应用程序,我想连接到oracle数据库。
我添加了参考 Oracle.DataAccess 在我的64位Microsoft Window Server 2008计算机上的应用程序中。 我还在我的机器上安装了ODAC(Oracle数据访问组件) 和 Oracle.DataAccess.dll 也出现在这条道路上

C:\ WINDOWS \ Microsoft.NET \装配\ GAC_64 \ Oracle.DataAccess

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

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


11399
2018-03-08 12:26


起源

你试过安装32位版本吗? - Felipe Oriani
不,我已经安装了64位版本 - RAKESH HOLKAR
@FelipeOriani我该怎么办?其实我使用的是64位机器。 - RAKESH HOLKAR
看看我的回答。 - Felipe Oriani


答案:


据我所知, 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 在机器上,你只需要在DataSource字段上提供TNS connection string 它工作得很好 32 和 64 位。


6
2018-03-08 12:57



x64 Oracle.DataAccess程序集也可以工作,因为我只使用x64而在另一个上使用它并且它工作正常。我无法确定为什么它会在我的系统中遇到。 @felipe Oriani非常感谢你解决我的问题。 - RAKESH HOLKAR
Oracle.DataAccess程序集有32位和64位版本,它们都可以正常工作。我使用了两个版本。 - Hüseyin Yağlı
它仍然出现在我的机器上。我的机器也是64位 - RDeveloper


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


3
2018-03-08 12:30



我已经在IIS上发布了。 - RAKESH HOLKAR


基本相同的错误

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

你查了一下GAC吗?

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

你没有取得任何进展。

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


1
2018-03-08 12:36



我确信Oracle.DataAccess.dll的正确版本。我试图把引用本地但它遇到以下错误。无法加载文件或程序集Oracle.DataAccess或其依赖项之一。尝试加载格式不正确的程序。 - RAKESH HOLKAR


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


1
2017-07-18 10:55





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


1
2017-09-03 07:03





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


0
2018-03-17 13:20