我用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”或其依赖项之一。该系统找不到指定的文件。
据我所知, 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
位。
您需要同时安装x64和x86版本的Oracle,因为某些东西(我认为它是Visual Studio)在调试时使用x86版本。
基本相同的错误
根据我和其他答案参与者的最新帖子缺少ODP.NET安装组件。
你查了一下GAC吗?
如果您没有看到Oracle.xxx文件夹,
你没有取得任何进展。
将Oracle.DataAccess.dll的正确版本和位放入application / BIN文件夹并进行本地引用。它解决了许多问题。
要运行您的网站,您必须使用IIS,因为visual studio的开发服务器只能以32位模式运行。
在IIS应用程序池中,将应用程序设置为以64位运行。 (设置为高级设置)
在VS2010中,我将平台目标更改为x64,此错误消息消失。
要解决此错误,我在IIS中设置我的应用程序池以允许32位应用程序。
打开IIS管理器,右键单击应用程序池,然后选择“高级设置” - >将“启用32位应用程序”设置为True。它对我来说很好。