解決ASP.Net安裝後無法訪問Oracle數據庫問題,這篇忘了那裡轉的,
安裝完ASP.Net,Oracle9i客戶端後,使用System.Data.OracleClIEnt訪問Oracle數據庫時收到如下信息
System.Data.OracleClIEnt requires Oracle clIEnt software version 8.1.7 or greater.
原因
Oracle 9i Release 2 客戶端在安裝到Windows的NTFS分區下時的安全認證設置不正確,引起本機的Authenticated Users用戶無法看到Oracle_HOME目錄下的內容; 這導致在ASP.Net以Authenticated Users權限使用System.Data.OracleClIEnt連接Oracle數據庫時報出以上錯誤。
解決
要解決以上問題,只要給Authenticated Users 組加上訪問Oracle Home目錄的權限即可
以Administrator權限登錄Windows.
啟動Window 資源浏覽器找到ORACLE_HOME目錄,如C:\Oracle\ora92
右鍵彈出菜單,選擇該目錄共享與安全(Win2000下要點擊屬性)
點擊 “安全” 頁簽
在組和用戶名稱列表中點擊“Authenticated Users” 項.
在該用戶的權限列表中,將“讀取和運行”的選擇框置為不選中狀態
再次點擊“讀取和運行”的選擇框,將其設置為選中狀態
點擊“高級”按鈕並在權限項目中確定“Authenticated Users” 是否擁有“讀取並運行”權限並應用於“該文件夾,及子文件夾和文件”. 如果不是,雙擊這樣,並確保權限可以“應用於” “該文件夾,及子文件夾和文件”. 該項非常重要你一定要核查.
點擊“確定” 按鈕
重啟動, 以使得所有的修改生效.
================================================
The 'OraOLEDB.Oracle.1' provider is not registered on the local Machine的原因這種情況有3種可能的原因
1.裝Oracle 的機器是不是NTFS的?如果是的話,將\Ora81下的BIN的權限,全部放開,給所有用戶。
(不然在B/S結構下會因為沒有權限訪問目錄而報這個錯誤)
2.如果數據庫服務器是Oracle816的。在服務器的那台機器上找Ora81\network\ADMIN下的sqlnet.ora文件,把裡面的
SQLNET.AUTHENTICATION_SERVICES= (NTS)改成
SQLNET.AUTHENTICATION_SERVICES= (NONE)
(這種會造成某些機器上報驅動初始化失敗的錯誤,在用OracleClIEnt下出現過一次)
3.如果以上都沒有解決問題。可以考慮是不是注冊表裡的注冊真的丟失了。(可能性比較小,Windows還是比較安全的)
regsvr32 ..\Oracle_HOME\bin\OraOLEDB.dll
再不行可以重裝一下客戶端試試。