好不容易使用plsql可以成功連上數(shù)據(jù)庫了,應(yīng)用程序連接數(shù)據(jù)庫卻出現(xiàn)了問題
其實(shí)解決這個(gè)問題也簡單:
1.?
查看oracle安裝目錄下的BIN目錄,E:\app\Administrator\product\11.1.0\db_1\BIN
發(fā)現(xiàn)有OraOLEDB11.dll這個(gè)文件
解決方法:
注冊O(shè)raOLEDB11.dll
注冊方法:
reg
svr32??OraOLEDB11.dll
?
發(fā)現(xiàn)問題依舊
Provider=OraOLEDB.Oracle.1 未找到提供程序.該程序可能未正確安裝.
2.
在命令提示符下,鍵入 ? cd ? %systemroot%:\Program ? Files\Common ? Files\System\Ole。 ?? ??
在命令提示符下,鍵入 ? regsvr32 ? sqloledb.dll,
regsvr32?oledb32.dll
這下應(yīng)用程序連接數(shù)據(jù)庫就成功。
我懷疑這個(gè)問題的根本原因還是在于sqloledb.dll, oledb32.dll 這兩個(gè)dll沒有注冊導(dǎo)致的。
3.?對于64位數(shù)據(jù)庫需要配置32位客戶端的PATH環(huán)境變量:
System.Data.OracleClient所指向的是PATH環(huán)境變量下的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(這個(gè)部分也是必須的,根據(jù)實(shí)際情況的不同進(jìn)行修改)。
2. 在系統(tǒng)的環(huán)境變量PATH中加入以上路徑。
之后重啟操作系統(tǒng)(這個(gè)是必須的,我弄了一下午沒有搞好,結(jié)果重啟一下馬上就好了),程序會依照PATH路徑尋找oci.dll,如果遇到32位的oci.dll會自動略過,找到64位的oci.dll就能連接上數(shù)據(jù)庫了。
4.?
?? IIS服務(wù)器報(bào)錯(cuò):System.Data.OracleClient 需要 Oracle 客戶端軟件 8.1.7 或更高版本。
出錯(cuò)的原因:
1.雖然報(bào)的是需要安裝客戶端8.1.7及以上版本,實(shí)際是.net賬戶沒有訪問Oracle\bin文件夾的權(quán)限
2.在 Windows Server 2003/2008 的 NTFS系統(tǒng)中提供了高級的訪問安全性,F(xiàn)AT32系統(tǒng)也許沒有這個(gè)問題。
解決辦法如下:
我用Windows Server 2008 為例 Windows Server 2003 是一樣的
1.打開安裝有Oracle客戶端的電腦,在安裝目錄 C:\oracle\ora90\BIN 文件夾上右鍵-》安全選項(xiàng)卡-》點(diǎn)擊? 編輯---》添加。
2.點(diǎn)擊“查找范圍”,在下面顯示的賬戶中選擇“NTWORK SERVICE”? ----將“讀取和執(zhí)行”的權(quán)限都賦給他(如果不行就把完全控制給他,這樣不安全),子文件夾繼承此權(quán)限,確定。
3.打開“服務(wù)器管理器”-》配置-》 本地用戶和組-》組-》adminisgrators-》將Network Service 添加進(jìn)來
4.重新啟動IIS,在“運(yùn)行”中輸入“IISRESET”。
還有一種情況就是:
IIS設(shè)置為64位模式下運(yùn)行,改為32位模式這個(gè)問題就解決了
應(yīng)用程序池 ->?高級設(shè)置 ->啟用32位應(yīng)用程序??= TRUE
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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