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

时间:2013-03-08 12:26:06

标签: c# asp.net oracle11g .net-assembly gac

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

  

C:\的Windows \ Microsoft.NET \组件\ GAC_64 \ Oracle.DataAccess

但是当我尝试连接时遇到以下错误:

  

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

7 个答案:

答案 0 :(得分:7)

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

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

<强>更新

我建议您查看Official Oracle ODP.NET, Managed Driver,这是一个比Oracle.DataAccess更好的版本。此Managed Driver不需要计算机上的Oracle Client,您只需要在connection string的DataSource字段上提供TNS,它适用于32和{ {1}}位。

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

基本相同的错误

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

您还查看了GAC吗?

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

你没有取得任何进展。

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

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

我在C#控制台应用程序上遇到了同样的异常。对我来说解决的是将平台目标更改为x86。 (项目属性=> build)