程序连接Oracle数据库出现未找到提供程序.该程序可能未正确安装错误提示
好不容易使用plsql可以成功連上數據庫了,應用程序連接數據庫卻出現了問題
其實解決這個問題也簡單:
1. 查看oracle安裝目錄下的BIN目錄,E:appAdministratorproduct11.1.0db_1BIN
發現有OraOLEDB11.dll這個文件
解決方法:
注冊OraOLEDB11.dll
注冊方法:
regsvr32OraOLEDB11.dll
發現問題依舊
Provider=OraOLEDB.Oracle.1 未找到提供程序.該程序可能未正確安裝.
2.
在命令提示符下,鍵入 cd %systemroot%:Program FilesCommon FilesSystemOle。
在命令提示符下,鍵入 regsvr32 sqloledb.dll, regsvr32oledb32.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.1instantclient_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賬戶沒有訪問Oraclein文件夾的權限
2.在 Windows Server 2003/2008 的 NTFS系統中提供了高級的訪問安全性,FAT32系統也許沒有這個問題。
解決辦法如下:
我用Windows Server 2008 為例 Windows Server 2003 是一樣的
1.打開安裝有Oracle客戶端的電腦,在安裝目錄 C:oracleora90BIN 文件夾上右鍵-》安全選項卡-》點擊 編輯---》添加。
2.點擊“查找范圍”,在下面顯示的賬戶中選擇“NTWORK SERVICE” ----將“讀取和執行”的權限都賦給他(如果不行就把完全控制給他,這樣不安全),子文件夾繼承此權限,確定。
3.打開“服務器管理器”-》配置-》 本地用戶和組-》組-》adminisgrators-》將Network Service 添加進來
4.重新啟動IIS,在“運行”中輸入“IISRESET”。
還有一種情況就是:
IIS設置為64位模式下運行,改為32位模式這個問題就解決了
應用程序池 ->高級設置 ->啟用32位應用程序= TRUE
總結
以上是生活随笔為你收集整理的程序连接Oracle数据库出现未找到提供程序.该程序可能未正确安装错误提示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 99不88什么意思 99不88梗含义出处
- 下一篇: 国外一些好用的UX/UI设计工具和资源介