System.TypeInitializationException:'Oracle.DataAccess.Client.OracleConnection'的类型初始值设定项引发异常

时间:2016-07-26 12:10:57

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

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

所以我这样做了,应用程序在服务器上工作正常但是当应用程序在客户端机器上运行时,它会给出以下错误。

enter image description here

4 个答案:

答案 0 :(得分:2)

如果没有别的办法。试试这个:

Project > properties > complie > check prefer 32 bit

这为我解决了这个问题。

答案 1 :(得分:0)

很少有事情要检查,可能其中一个有效:

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

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

答案 2 :(得分:0)

  • 卸载Oracle.DataAccess
  • 卸载Oracle.ManagedDataAccess
  • 卸载Oracle.ManagedDataAccess.EntityFramework
  • 重新安装所有这些。

这对我有用。

答案 3 :(得分:0)

引起异常的C#指令。

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

Failed to initialize OracleConnection()

设置
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'元素。

相关问题