C# System.TypeInitializationException:';Oracle.DataAccess.Client.OracleConnection';抛出异常
我正在asp.net中开发Windows应用程序,使用C#和Oracle作为数据库。在这里,最初应用程序的一些模块是使用实体框架创建的,因此我尝试替换实体框架代码,以简单地调用存储过程 所以我认为应用程序在服务器上运行良好,但当应用程序在客户机上运行时,它会给出以下错误C# System.TypeInitializationException:';Oracle.DataAccess.Client.OracleConnection';抛出异常,c#,asp.net,oracle,winforms,entity-framework,C#,Asp.net,Oracle,Winforms,Entity Framework,我正在asp.net中开发Windows应用程序,使用C#和Oracle作为数据库。在这里,最初应用程序的一些模块是使用实体框架创建的,因此我尝试替换实体框架代码,以简单地调用存储过程 所以我认为应用程序在服务器上运行良好,但当应用程序在客户机上运行时,它会给出以下错误 需要检查的东西很少,可能是其中一种: 请为ODP.net尝试NuGet软件包。你可以在这里找到它们: https://www.nuget.org/packages/odp.net.managed/ 我同意@Husqvik,请检
需要检查的东西很少,可能是其中一种:
- 请为
尝试NuGet软件包。你可以在这里找到它们:ODP.net
https://www.nuget.org/packages/odp.net.managed/
- 我同意@Husqvik,请检查系统是否正在尝试加载64 位Oracle DLL,但无法执行,因为应用程序正在32中运行 位模式。尝试将应用程序显式设置为64位。 或者,安装32位ODP.Net驱动程序,看看这些驱动程序 再好不过了
希望这有帮助,请回答任何方式。谢谢没有什么需要检查的,可能是其中一个有用的方法:
- 请为
尝试NuGet软件包。你可以在这里找到它们:ODP.net
https://www.nuget.org/packages/odp.net.managed/
- 我同意@Husqvik,请检查系统是否正在尝试加载64 位Oracle DLL,但无法执行,因为应用程序正在32中运行 位模式。尝试将应用程序显式设置为64位。 或者,安装32位ODP.Net驱动程序,看看这些驱动程序 再好不过了
希望这有帮助,请回答任何方式。如果没有别的办法,谢谢你。试试这个:
Project > properties > complie > check prefer 32 bit
这为我解决了这个问题。如果没有其他办法的话。试试这个:
Project > properties > complie > check prefer 32 bit
这为我解决了这个问题。- 卸载Oracle.DataAccess
- 卸载Oracle.ManagedDataAccess
- 卸载Oracle.ManagedDataAccess.EntityFramework
- 重新安装所有这些
- 卸载Oracle.DataAccess
- 卸载Oracle.ManagedDataAccess
- 卸载Oracle.ManagedDataAccess.EntityFramework
- 重新安装所有这些
var connection = new OracleConnection(); // from Oracle.ManagedDataAccess.Client
设置
2个项目
未提取“app.config”中的Oracle连接字符串。没有连接字符串。就好像app.config不存在一样 根本原因
已删除启动项目的App.config中的“sectionGroup”元素!据我所知,如果没有这个元素,app.config中相应的“sectionGroup”会被忽略,其中Oracle也会被忽略,这也会忽略连接字符串 如何或谁删除了“sectionGroup”元素?
我删除了启动项目属性中的一个用户设置。由于只有一个,Visual Studio将删除app.config中的整个“userSettings”元素。没关系,没问题。但是,VisualStudio也删除了“sectionGroup”元素 解决方案
写回“sectionGroup”元素。C#导致异常的指令
var connection = new OracleConnection(); // from Oracle.ManagedDataAccess.Client
设置
2个项目
未提取“app.config”中的Oracle连接字符串。没有连接字符串。就好像app.config不存在一样 根本原因
已删除启动项目的App.config中的“sectionGroup”元素!据我所知,如果没有这个元素,app.config中相应的“sectionGroup”会被忽略,其中Oracle也会被忽略,这也会忽略连接字符串 如何或谁删除了“sectionGroup”元素?
我删除了启动项目属性中的一个用户设置。由于只有一个,Visual Studio将删除app.config中的整个“userSettings”元素。没关系,没问题。但是,VisualStudio也删除了“sectionGroup”元素 解决方案
写回'sectionGroup'元素。我想您已经在谷歌上搜索了错误消息。到目前为止有什么发现吗?前两个热门问题已经是标题相同的stackoverflow问题。@TimSchmelter是的,我搜索了一下,刚刚发现需要添加3 ODAC的dll,我已经添加了,但到目前为止运气不好。您正在将32位组件加载到64位应用程序中,反之亦然。@Husqvik我需要检查一下。我想您已经在谷歌上搜索了错误消息。到目前为止有什么发现吗?前两个问题已经是标题相同的stackoverflow问题。@TimSchmelter是的,我搜索后发现需要添加3 ODAC的dll,我这样做了,但到目前为止运气不佳。您正在将32位汇编加载到64位应用程序中,反之亦然。@Husqvik我需要检查此问题。我尝试将应用程序平台更改为64位并运行应用程序,但没有运气,或者安装了32位ODAC,应用程序平台为32位,但仍有错误,不会更改,也不会修复。我尝试将应用程序平台更改为64位,并运行应用程序,但没有运气,或者安装了32位ODAC,应用程序平台为32位,但仍然没有错误改变也不固定。