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中文版!

      

  • 相关阅读:
    tcp的三次握手和四次挥手
    前端文档规范
    阻止事件冒泡
    研发纠纷解决方案
    ui-router 中views的配置
    JXL操作Excel部分详解(java)
    utf-8与utf-16的区别
    把字符串转换为Double 类型
    spring MVC
    Android项目目录结构
  • 原文地址:https://www.cnblogs.com/ganqiyin/p/2584881.html
Copyright © 2011-2022 走看看