程序連接Oracle數據庫出現未找到提供程序.該程序可能未正確安裝錯誤提示


好不容易使用plsql可以成功連上數據庫了,應用程序連接數據庫卻出現了問題

其實解決這個問題也簡單:

1.  查看oracle安裝目錄下的BIN目錄,E:\app\Administrator\product\11.1.0\db_1\BIN
發現有OraOLEDB11.dll這個文件
解決方法:
注冊OraOLEDB11.dll
注冊方法:
reg
svr32  OraOLEDB11.dll

 

發現問題依舊

Provider=OraOLEDB.Oracle.1 未找到提供程序.該程序可能未正確安裝.

2.

在命令提示符下,鍵入   cd   %systemroot%:\Program   Files\Common   Files\System\Ole。      
在命令提示符下,鍵入   regsvr32   sqloledb.dll,
regsvr32 oledb32.dll

這下應用程序連接數據庫就成功。

我懷疑這個問題的根本原因還是在於sqloledb.dll, oledb32.dll 這兩個dll沒有注冊導致的。

3. 對於64位數據庫需要配置32位客戶端的PATH環境變量:

System.Data.OracleClient所指向的是PATH環境變量下的oci.dll。因此,我們只要讓程序能夠找到64位的oci.dll就可以了。方法如下:

1. 下載instantclient-basic-win-x86-64-11.1.0.7.0.zip,並解壓,如C:\instantclient-basic-win-x86-64-11.1\instantclient_11_1(這個部分也是必須的,根據實際情況的不同進行修改)。

2. 在系統的環境變量PATH中加入以上路徑。

之后重啟操作系統(這個是必須的,我弄了一下午沒有搞好,結果重啟一下馬上就好了),程序會依照PATH路徑尋找oci.dll,如果遇到32位的oci.dll會自動略過,找到64位的oci.dll就能連接上數據庫了。

4. 

   IIS服務器報錯:System.Data.OracleClient 需要 Oracle 客戶端軟件 8.1.7 或更高版本。

出錯的原因:

1.雖然報的是需要安裝客戶端8.1.7及以上版本,實際是.net賬戶沒有訪問Oracle\bin文件夾的權限

2.在 Windows Server 2003/2008 的 NTFS系統中提供了高級的訪問安全性,FAT32系統也許沒有這個問題。

解決辦法如下:

我用Windows Server 2008 為例 Windows Server 2003 是一樣的

1.打開安裝有Oracle客戶端的電腦,在安裝目錄 C:\oracle\ora90\BIN 文件夾上右鍵-》安全選項卡-》點擊  編輯---》添加。

2.點擊“查找范圍”,在下面顯示的賬戶中選擇“NTWORK SERVICE”  ----將“讀取和執行”的權限都賦給他(如果不行就把完全控制給他,這樣不安全),子文件夾繼承此權限,確定。

3.打開“服務器管理器”-》配置-》 本地用戶和組-》組-》adminisgrators-》將Network Service 添加進來

4.重新啟動IIS,在“運行”中輸入“IISRESET”。

還有一種情況就是:

IIS設置為64位模式下運行,改為32位模式這個問題就解決了

應用程序池 -> 高級設置 ->啟用32位應用程序  = TRUE

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM