標籤:io 使用 ar 檔案 資料 sp 問題 cti on
安裝完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資料庫時報出以上錯誤。
解決方案:
在oracle/bin目錄,加入給以下使用者/組,授完全許可權:
asp.net machine account
administrator
authenticated users
並且將Asp.net加入到administrator組,再重啟IIS
上面這種方法是實踐過可行的,
網上還有一種方案,大抵相同,有細小區別,其實不主張將asp.net加入administrator,也不主開開過份大的許可權,但下面這種方法,試過似乎不可行:
以Administrator許可權登入Windows.
啟動Window 資源總管找到ORACLE_HOME目錄,如C:\Oracle\ora92
右鍵快顯功能表,選擇該目錄共用與安全(Win2000下要點擊屬性)
點擊 “安全” 頁簽
在組和使用者名稱稱列表中點擊“Authenticated Users” 項.
在該使用者的許可權列表中,將“讀取和運行”的選擇框置為不選中狀態
再次點擊“讀取和運行”的選擇框,將其設定為選中狀態
點擊“進階”按鈕並在許可權項目中確定“Authenticated Users” 是否擁有“讀取並運行”許可權並應用於“該檔案夾,及子檔案夾和檔案”. 如果不是,雙擊這樣,並確保許可權可以“應用於” “該檔案夾,及子檔案夾和檔案”. 該項非常重要你一定要核查.
點擊“確定” 按鈕
重啟動, 以使得所有的修改生效.
Oracle 9.2下的“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”
今天在串連Oracle的時候碰到一個問題,我的機器裝的是Oracle9.2用戶端,當在asp.net應用中使用資料訪問的組件(調用System.Data.OracleClient)時,程式報“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”的錯誤,無法建立OracleConnection,但在同一台機器上用winfom用戶端又能夠正常訪問到資料庫。更加奇怪的是,我把應用部署到一台安裝了Oracle 8.17用戶端的機器上時,卻能夠正常運行。
找了半天 ,終於搞清楚了原因。原來當Oracle 9.2運行在NTFS的分區上時,對於某些非administrator組的使用者,ORACLE_HOME 目錄是不可見的,而在windows server 2003下asp.net應用使用的帳戶是netword service,因此無法建立oracle串連,只要重設一下ORACLE_HOME目錄的許可權就可以了。步驟如下:
1、以管理員的使用者登入;
2、找到ORACLE_HOME檔案夾(我的是C:\oracle\ora92),點右鍵,選屬性--安全,在組或使用者欄中選“Authenticated Users”,在下面許可權列表中把“讀取和運行”的許可權去掉,再按應用;重新選上“讀取和運行”許可權,點擊應用;選許可權框下面的“進階”按鈕,確認“Authenticated Users”後面的應用於是“該檔案夾、子檔案夾及檔案”,按確定把許可權的更改應用於該檔案夾;
3、重新啟動電腦,讓使用權限設定生效(請注意,這一步很重要);
4、登入後運行asp.net應用,正常取得Oracle資料庫的資料。
【轉】System.Data.OracleClient requires Oracle client software version 8.1.7 or greater