【问题标题】:Oracle Type Initializer Exception on Windows XPWindows XP 上的 Oracle 类型初始化程序异常
【发布时间】:2012-09-13 06:12:52
【问题描述】:

我编写了一个到 Oracle Express 版本 10 的 Oracle 数据库连接

它适用于我的开发 PC (Windows Vista)。

当我在 Windows XP PC 上运行这个程序时,Oracle DB 连接在连接到服务器时抛出异常

“错误:'Oracle.DataAccess.Client.OracleConnection' 的类型初始化程序引发异常”

连接代码如下:

try{ 
 string oradb = "Data Source="
               +"(DESCRIPTION ="
               +" (ADDRESS = (PROTOCOL = TCP)(HOST = " + IP + ")(PORT = 1521))"
               +" (CONNECT_DATA ="
               +" (SERVER = DEDICATED)"
               +" (SERVICE_NAME = XE)"
               +" )"
               + " );User id=XXXX;Password=XXXX;";

            OracleConnection conn = new OracleConnection(oradb);

             .....
             .....


}
catch (Exception ex)
{
        MessageBox.Show("Error:" + ex.Message);
}

【问题讨论】:

    标签: c# .net oracle


    【解决方案1】:

    XP 盒子上的客户端软件是哪个版本?

    检查我的计算机配置我只在 Oracle 10g 安装上看到 ODP.Net 1.x(对我来说它是 C:\oracle\product\10.2.0\db_home\ODP.NET\bin\1.x),这是一个 .Net 1.0 安装,不适用于 .net 2.0 - 4.0。这可能是你麻烦的根源。

    Oracle 10.2 ODP.Net 驱动程序也非常不稳定(即使是 .Net 2.0 版本)。如果您使用的是 .Net 1.0 或 1.1,您可能需要使用 ODPReg.exe(同一目录)重新注册 Oracle.DataAccess.dll,如果您使用的是 2.0,您可能需要安装一个 .net 2.0(最高 3.5)Oracle客户端或 .Net 4.0(或 4.5)Oracle 客户端。

    我建议您安装 11.2 客户端,并检查 Oracle.DataAccess.dll 是否已正确注册(有 2 个安装:一个用于 .Net 2.0-3.5,一个用于 .Net 4.0,在我的盒子 C:\oracle \product\11.2.0\client_ODTwithODAC112030\odp.net\bin\2.x 和 C:\oracle\product\11.2.0\client_ODTwithODAC112030\odp.net\bin\4 )。 您可能需要使用 OraProvCfg.exe 强制注册

    您也可以尝试使用 Xcopy 驱动程序安装,如果您想将驱动程序与您的软件一起分发,请务必仔细阅读文档,它很奇怪且容易出错(例如 ODAC112030Xcopy_x64.zip)。

    ODAC 在这里:http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html.

    【讨论】:

      猜你喜欢
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-12
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多