11

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

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

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

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

4

7 回答 7

8

据我所知,该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在机器上,您只需要在的 DataSource 字段上提供 TNSconnection string并且它适用于3264位。

于 2013-03-08T12:57:19.660 回答
3

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

于 2013-03-08T12:30:27.030 回答
2

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

于 2013-09-03T07:03:06.150 回答
1

基本相同的错误

根据我和其他答案参与者的最后一篇文章,缺少 ODP.NET 安装组件。

你检查GAC了吗?

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

你没有取得任何进展。

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

于 2013-03-08T12:36:27.213 回答
1

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

于 2013-07-18T10:55:54.990 回答
0

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

于 2014-03-17T13:20:44.920 回答
0

我在 ac# 控制台应用程序上遇到了同样的异常。为我解决的问题是将平台目标更改为 x86。(项目属性 => 构建)

于 2018-11-19T08:05:15.007 回答