解決ASP.NET安裝後無法存取Oracle資料庫問題,這篇忘了那裡轉的,
安裝完ASP.NET,Oracle9i客戶端後,使用System.Data.OracleClient存取Oracle資料庫時收到以下資訊
System.Data.OracleClient requires Oracle client software version 8.1.7 或 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:Oracleora92
右鍵彈出選單,選擇該目錄共享與安全(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的。在伺服器的那台機器上找Ora81networkADMIN下的sqlnet.ora文件,把裡面的
SQLNET.AUTHENTICATION_SERVICES= (NTS)改成
SQLNET.AUTHENTICATION_SERVICES= (NONE)
(這種會造成某些機器上報驅動初始化失敗的錯誤,在用OracleClient下出現過一次)
3.如果以上都沒有解決問題。可以考慮是不是註冊表裡的註冊真的遺失了。 (可能性比較小,windows還是比較安全的)
regsvr32 ..ORACLE_HOMEbinOraOLEDB.dll
再不行可以重裝客戶端試試。