2015-04-22 59 views
0

我遇到了這個問題,我一直在撞牆,試圖找出如何解決它。我有一個ASP.NET應用程序(用.NET 1.1編寫,我相信沒有可用的源代碼)通過OleDB連接連接到Oracle數據庫。從64位Windows 2012上的32位ASP應用程序的Oracle 12 OleDB連接

主機最近已被64位Windows 2012替換,Oracle數據庫升級到v 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

您知道IIS服務器是否同時擁有32位和64位ODBC版本?我不確定,但我認爲IIS只有64位在你的情況。 – MacKentoch

+0

如果您想要在32位和64位之間切換,則必須同時安裝32位和64位Oracle客戶端。遵循這個指令來做到這一點:[堆棧溢出 - 安裝Oracle x86和x64](http://stackoverflow.com/questions/24104210/badimageformatexception-this-will-occur-when-running-in-64-bit-mode-與最32#24120100) –

回答

0

如果你切換到32位模式,工作的原因是因爲,你可能有32位版本的驅動程序,就像Wernfried所說的那樣。您需要安裝64位版本的驅動程序。刪除32位版本,如果你不需要它。

相關問題