我正在用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”或其中一个依赖项。系统找不到指定的文件。
答案 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)