好不容易使用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
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
