好好的程序,突然出現了錯誤,原因是:System.Data.OracleClient requires Oracle client software version 8.1.7 or greater,很是奇怪
服務器上的oracle明明是10g,程序出錯就也不提示8.1.7啊,百度了一下,發現有解決方法如下:
原來當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數據庫的數據。
看到這裡,我想起來了,於是去看了看環境變量中的oracle路徑,發現在果然是這樣。原來前幾天在服務器上,突然發現在有兩塊硬盤,一直沒有用,連盤符也沒有分,光驅在D盤,oracle裝在E盤。看著心裡別扭,就把光驅調到最後,設為H盤,E盤則改為D盤,新加的兩個硬盤,分別有E、F。
硬盤盤符調好了,但是環境變量裡面的路徑沒變,oracle的路徑還是在E盤,沒辦法,只好又把硬盤盤符恢復成之前的,問題解決。