64位Windows 2012上32位ASP应用程序的Oracle 12 OleDB连接

时间:2015-04-22 02:48:52

标签: asp.net oracle oledb 32bit-64bit

我遇到了这个问题而且我一直在撞墙试图弄清楚如何绕过它。我有一个ASP.NET应用程序(用.NET 1.1编写,我相信没有可用的源代码)通过OleDB连接连接到Oracle数据库。

最近主机被64位Windows 2012取代,Oracle数据库升级到第12版。现在,我能够让应用程序在新服务器上运行的唯一方法是切换应用程序池在IIS上以32位模式运行。一切似乎都有效 - 除了与Oracle的连接。

我使用的连接字符串是:

Provider=OraOLEDB.Oracle; Data Source=DSNAME;User ID=user;Password=password;Unicode=True

当我尝试在64位应用程序池模式下运行一个简单的ASP.NET测试Web应用程序只是为了测试连接 - 它工作正常!当我切换到32位模式时 - 它返回以下The 'OraOLEDB.Oracle' provider is not registered on the local machine.

现在,我尝试下载并安装32位版本的Oracle数据访问组件并运行install.bat和configure.bat(它们似乎没有任何错误执行 - 但提供程序仍无法正常工作!

当我运行以下命令行(启动32位OleDB配置屏幕)时

C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile D:\test.udl

我收到Provider can not be found. Ensure provider has been installed properly.消息提示。

请帮忙!

1 个答案:

答案 0 :(得分:0)

如果你切换到32位模式的原因是因为你可能有32位版本的驱动程序,就像Wernfried提到的那样。您需要安装64位版本的驱动程序。如果您不需要,请删除32位版本。