'MSDAORA.1'提供程序未在本地计算机上注册

时间:2013-11-07 19:01:18

标签: c# .net database oracle iis

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

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

我认为MSDAORA仅支持32位应用程序,并且在IIS中运行的应用程序池不适用于32位应用程序。

我如何解决这个问题,我可以在IIS中更改某些内容吗?或者是代码更改?

4 个答案:

答案 0 :(得分:4)

使用ORAOLEDB.ORACLE而不是MSDAORA为我修复了同样的问题 - 将平台目标从“任何CPU”更改为“X86”会导致我的项目在Visual Studio中出错。

请参阅回答here

答案 1 :(得分:3)

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

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

感谢您的帮助Yuriy。

答案 2 :(得分:0)

我有同样的问题,但不是32 / 64bit。我使用了ODAC xcopy安装程序,忘了在管理员的cmd.exe 中运行它。它没有给出任何错误,所以我很难搞清楚这一点。 xcopy部分工作但通过regsvr32的DLL注册无声地失败。

答案 3 :(得分:0)

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

11/08/2018

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

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