【问题标题】:System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exceptionSystem.TypeInitializationException:“Oracle.DataAccess.Client.OracleConnection”的类型初始化程序引发异常
【发布时间】:2016-11-30 01:58:28
【问题描述】:

我正在使用 C# 和 Oracle 作为数据库的 asp.net 中开发 Windows 应用程序。这里最初应用程序的一些模块是使用实体框架制作的,所以我试图替换实体框架代码来简单地调用存储过程。

所以我做到了该应用程序在服务器上运行良好,但是当应用程序在客户端计算机上运行时,它会给出以下错误。

【问题讨论】:

  • 我猜你已经用谷歌搜索了错误信息。到目前为止有什么发现吗?前两个命中已经是具有相同标题的 stackoverflow 问题。
  • @TimSchmelter 是的,我搜索了一下,发现需要添加 3 个 ODAC 的 dll,但到目前为止还没有运气。
  • 您正在将 32 位程序集加载到 64 位应用程序中,反之亦然。
  • @Husqvik 我需要检查一下。

标签: c# asp.net oracle winforms entity-framework


【解决方案1】:

要检查的东西很少,可能是其中之一有效:

  • 为ODP.net 试用 NuGet 包。你可以在这里找到它们: https://www.nuget.org/packages/odp.net.managed/
  • 我同意@Husqvik,检查系统是否正在尝试加载 64 位Oracle DLL,不能因为应用程序运行在32 位模式。尝试将您的应用程序明确设置为 64 位。 或者,安装 32 位 ODP.Net 驱动程序,看看那些 工作得更好。

希望这有帮助,请以任何方式回复。谢谢

【讨论】:

  • 我尝试将应用程序平台更改为 64 位并运行应用程序,但没有运气,或者将应用程序平台的 32 位 ODAC 安装为 32 位,但仍然错误没有改变也没有修复。跨度>
【解决方案2】:

如果没有其他方法。试试这个:

Project > properties > complie > check prefer 32 bit

这为我解决了这个问题。

【讨论】:

    【解决方案3】:
    • 卸载 Oracle.DataAccess
    • 卸载 Oracle.ManagedDataAccess
    • 卸载 Oracle.ManagedDataAccess.EntityFramework
    • 重新安装所有这些。

    这对我有用。

    【讨论】:

      【解决方案4】:

      导致异常的 C# 指令。

      var connection = new OracleConnection(); // from Oracle.ManagedDataAccess.Client
      

      设置
      2 个项目

      1. 启动 (app.config)
      2. 包括 Oracle (app.config)

      Oracle 连接参数,例如端口、SID、连接名称、用户/密码和主机名是从“app.config”中提取的。启动项目有自己的“app.config”。

      问题
      “app.config”中的 Oracle 连接字符串未提取。没有连接字符串。就好像 app.config 不存在一样。

      根本原因
      启动项目的 App.config 中的 'sectionGroup' 元素被删除了!据我所知,如果没有这个元素,app.config 中相应的“sectionGroup”会被忽略,其中 Oracle 被忽略,这也会忽略连接字符串。

      如何或谁删除了“sectionGroup”元素?
      我在启动项目的属性中删除了一个用户设置。由于只有一个,Visual Studio 删除了 app.config 中的整个 'userSettings' 元素。这没关系,没问题。但是,Visual Studio 也删除了“sectionGroup”元素。

      解决方案
      写回“sectionGroup”元素。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-01
        • 2017-08-17
        • 1970-01-01
        • 2021-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多