zoukankan      html  css  js  c++  java
  • 解决“The type initializer for'Oracle.DataAccess.Client.OracleConnection' threw an exception ”异常

     上次做了一个小的EXE应用程序,发给老大后,昨天老大告诉我程序在服务器端运行会抛出异常。

      今天我从早上上班一直弄到写这篇BLOG,才解决掉。

      设置断点进去跟踪发现是在Conncetion.open()时,会抛出异常,异常显示

      提供程序与此版本的ORACLE客户机不兼容

      服务器版本:

       异常如下:

      

    详细错误清单:(我用GG翻译了)

     

     主要是不能连接ORACLE数据库,连接DLL用的是 版本为2.112.1.2的ORACLE.DATAACCESS.DLL,在我自己的电脑上运行没有问题,在服务器端运行就会抛出异常。

     为了解决问题我尝试了用更新的版本。但是他还是会抛出同样的问题。

     最后我想起了.NET中自带有微软的ORACLE访问借口,于是我就用了SYSTEM.DATA.ORACLECLIENT这个组件,问题得到了解决。

     部分代码:(注释的就是调用的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         }


     详细情况我现在也还很糊涂,希望对有出现类似情况的同志有所帮助。

     嗯,VS工具是2008中文版!

      

  • 相关阅读:
    四招打造复合型人才
    Eclipse多国语言包的安装
    怎样和人配合(转)
    看海外如何解困建筑信息化(转)
    SSRS重装后不能在SSMS和IIS中打开,报Unauthorized错误的解决办法
    小心调用Replicator, While 和 CAG子活动
    自动备份 SourceSafe
    SQLServer2005新增序列功能的几个函数:ROW_NUMBER, RANK, DENSE_RANK, and NTILE
    分析物语
    定位.Net程序集文件
  • 原文地址:https://www.cnblogs.com/ganqiyin/p/2584881.html
Copyright © 2011-2022 走看看