解决“The type initializer for'Oracle.DataAccess.Client.OracleConnection' threw an exception ”异常...
?上次做了一個小的EXE應用程序,發(fā)給老大后,昨天老大告訴我程序在服務器端運行會拋出異常。
? 今天我從早上上班一直弄到寫這篇BLOG,才解決掉。
? 設置斷點進去跟蹤發(fā)現(xiàn)是在Conncetion.open()時,會拋出異常,異常顯示
? 提供程序與此版本的ORACLE客戶機不兼容
??服務器版本:
?
?? 異常如下:
??
詳細錯誤清單:(我用GG翻譯了)
?主要是不能連接ORACLE數(shù)據(jù)庫,連接DLL用的是 版本為2.112.1.2的ORACLE.DATAACCESS.DLL,在我自己的電腦上運行沒有問題,在服務器端運行就會拋出異常。
?為了解決問題我嘗試了用更新的版本。但是他還是會拋出同樣的問題。
?最后我想起了.NET中自帶有微軟的ORACLE訪問借口,于是我就用了SYSTEM.DATA.ORACLECLIENT這個組件,問題得到了解決。
?部分代碼:(注釋的就是調(diào)用的ORACLE.DATAACCESS.DLL組件的方法)
View Code 1 protected DataSet GetData() 2 { 3 4 //Oracle.DataAccess.Client.OracleConnection conn = new Oracle.DataAccess.Client.OracleConnection(connstr); 5 System.Data.OracleClient.OracleConnection conn = new OracleConnection(connstr); 6 try 7 { 8 conn.Open(); 9 //Oracle.DataAccess.Client.OracleCommand com = conn.CreateCommand(); 10 OracleCommand com = conn.CreateCommand(); 11 com.CommandText = "select * from DL_GOVT_NOTICE_INFO";//"select * from DL_GOVT_NOTICE_EXP_HIST"; 12 //Oracle.DataAccess.Client.OracleDataAdapter apter = new Oracle.DataAccess.Client.OracleDataAdapter(com); 13 OracleDataAdapter apter = new OracleDataAdapter(com); 14 DataSet ds = new DataSet(); 15 apter.Fill(ds); 16 apter.Dispose(); 17 conn.Dispose(); 18 return ds; 19 } 20 catch (Exception ex) 21 { 22 this.LabShowInfo.Text = "Error: " + ex.Message; 23 conn.Close(); 24 return null; 25 } 26 27 }
?詳細情況我現(xiàn)在也還很糊涂,希望對有出現(xiàn)類似情況的同志有所幫助。
?嗯,VS工具是2008中文版!
?
??
轉(zhuǎn)載于:https://www.cnblogs.com/ganqiyin/archive/2012/07/10/2584881.html
總結(jié)
以上是生活随笔為你收集整理的解决“The type initializer for'Oracle.DataAccess.Client.OracleConnection' threw an exception ”异常...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Android]ListView控件之
- 下一篇: 计算矩阵连乘积(动态规划)