1. 程式人生 > >Oracle 9.2下的“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”

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資料庫的資料。