4

我有一个连接到数据库的应用程序,提取信息,创建一个 excel 文件,然后删除文件/电子邮件 X 人该文件。

该应用程序是在 Visual Studios 中使用 .NET 2.0 Framework(Windows 窗体应用程序)创建的。它在 32 位服务器上运行。但它最近被转移到了 64 位服务器。它现在返回错误消息“'MSDAORA.1' 提供程序未在本地计算机上注册。”

我相信 MSDAORA 仅支持 32 位应用程序,并且应用程序在 IIS 中运行的应用程序池没有为 32 位应用程序启用。

我将如何解决这个问题,我可以在 IIS 中进行更改吗?还是代码更改?

4

5 回答 5

4

对我来说,使用ORAOLEDB.ORACLE而不是MSDAORA解决相同的问题 - 将平台目标从“任何 CPU”更改为“X86”会导致我在 Visual Studio 中的项目中出现错误。

在这里查看答案

于 2014-02-13T10:03:47.537 回答
3

我想出了解决方案。问题源于在 64 位机器上运行机器。要在 VS 中更改它,请打开解决方案的属性页面,然后在构建选项卡中将目标平台更改为 x86。这就是诀窍。

http://lostechies.com/gabrielschenker/2009/10/21/force-net-application-to-run-in-32bit-process-on-64bit-os/

谢谢你的帮助尤里。

于 2013-11-08T19:16:28.757 回答
1

我遇到了同样的问题,但我使用了另一种解决方案,因为我的应用程序在 IIS 中运行。

在应用程序池的高级设置Enable 32-Bit Applications中,我将值更改为true

于 2015-09-14T10:09:08.687 回答
0

https://docs.microsoft.com/en-us/sql/ado/guide/appendixes/microsoft-ole-db-provider-for-oracle?view=sql-server-ver15

2018 年 11 月 8 日

此功能将在 Windows 的未来版本中删除。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。而是使用 Oracle 的 OLE DB 提供程序。

所以可能使用 ORAOLEDB.ORACLE 是正确的解决方案,但这似乎比仅仅更改连接字符串更努力。

于 2020-02-21T14:42:49.340 回答
0

我遇到了同样的问题,但不是 32/64 位。我使用了 ODAC xcopy 安装程序,但忘记以管理员身份在 cmd.exe 中运行它。它没有给出任何错误,所以我很难弄清楚这一点。xcopy 部分有效,但通过 regsvr32 进行的 DLL 注册静默失败。

于 2017-05-19T11:03:52.763 回答