首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Oracle .Net ManagedDataAccess错误:无法从程序集中加载类型'OracleInternal.Common.ConfigBaseClass‘

Oracle .Net ManagedDataAccess错误:无法从程序集中加载类型'OracleInternal.Common.ConfigBaseClass‘
EN

Stack Overflow用户
提问于 2015-05-23 07:19:40
回答 10查看 39.8K关注 0票数 28

我有一个在本地工作的项目,在我们的开发服务器上,在我们的生产服务器上。

当我试图在测试服务器上运行它时,我得到了下面的错误,除了茫然地盯着我的屏幕之外,我不知道该怎么办。提示?追查问题根源的流程?

我已经为Oracle12.2等安装了NuGet包。

无法从程序集'Oracle.ManagedDataAccess,Version=4.121.2.0,Culture=neutral,PublicKeyToken=89b483f429c47342‘加载类型’Oracle.ManagedDataAccess‘。说明:当前web请求执行过程中发生未处理异常。请查看堆栈跟踪,以了解有关错误的更多信息以及错误在代码中的来源。

异常详细信息: System.TypeLoadException:无法从程序集“Oracle.ManagedDataAccess,Version=4.121.2.0,Culture=neutral,PublicKeyToken=89b483f429c47342”加载类型“”Oracle.ManagedDataAccess“”。“”

源错误:

在执行当前web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的来源和位置的信息。

堆栈跟踪:

TypeLoadException:未能从程序集“Oracle.ManagedDataAccess,Version=4.121.2.0,Culture=neutral,PublicKeyToken=89b483f429c47342”加载类型“”Oracle.ManagedDataAccess“”。“”

Oracle.ManagedDataAccess.EntityFramework.EntityFrameworkProviderSettings.Oracle.ManagedDataAccess.EntityFramework.EFProviderSettings.IEFProviderSettings.get_TracingEnabled() +0 Oracle.ManagedDataAccess.EntityFramework.EFProviderSettings.InitializeProviderSettings() +111 Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices..ctor() +629 Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices..cctor() +28

TypeInitializationException:'Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices‘的类型初始值设定项引发异常。

Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices.get_Instance() +24

Web.Config中包含以下块:

代码语言:javascript
复制
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
  </configSections>

代码语言:javascript
复制
  <oracle.manageddataaccess.client>
    <version number="*">
      <dataSources>
        <dataSource alias="PVMDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=pdxcludds108.pacificorp.us)(PORT=11086))(CONNECT_DATA=(SERVICE_NAME=DDS1086.PACIFICORP.US))) " />
      </dataSources>
    </version>
  </oracle.manageddataaccess.client>
  <connectionStrings>
    <add name="OracleDbContext" providerName="Oracle.ManagedDataAccess.Client" connectionString="User Id=USERID;Password=WORKINGPASSWORD;Data Source=PVMDataSource" />
    <add name="PVMEntities" connectionString="metadata=res://*/Models.PVMModel.csdl|res://*/Models.PVMModel.ssdl|res://*/Models.PVMModel.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string=&quot;DATA SOURCE=pdxcludds108.pacificorp.us:11086/DDS1086.PACIFICORP.US;PASSWORD=XXXXXXX;PERSIST SECURITY INFO=True;USER ID=XXX&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

注意:还有其他项目在此服务器上运行,它们只是使用不同版本的Oracle client for .Net。其他任何一个都没有只使用托管驱动程序。我正在寻找一种方法来挖掘这个错误,一些关于该类型的来源和加载的提示。

EN

回答 10

Stack Overflow用户

发布于 2016-02-03 20:04:58

来自NuGet的Oracle.ManagedDataAccess与安装在服务器上并在GAC中注册的a之间存在冲突。

从GAC中注销Oracle.ManagedDataAccess,您将消除以下错误:运行命令行并导航到目录:

Oracle{

home}\product{version}\client_64\ODP.NET\managed\x64

在那里你应该可以找到OraProvCfg.exe文件。执行以下命令,从GAC注销Oracle.ManagedDataAccess

代码语言:javascript
复制
OraProvCfg /action:ungac /providerPath:Oracle.ManagedDataAccess 
票数 28
EN

Stack Overflow用户

发布于 2016-01-30 00:27:45

您必须在GAC (C:\Windows\Microsoft.NET\assembly...)中删除Oracle.ManagedDataAccess程序集。

使用命令工具gacutil删除程序集:

C:\Program Files (x86)\Microsoft SDKs\Windows\YOUR_VERSION\bin\NETFX 4.6.1 Tools> gacutil /u Oracle.ManagedDataAccess

票数 22
EN

Stack Overflow用户

发布于 2015-06-24 22:06:00

通过将项目中对Oracle.ManagedDataAccess和Oracle.ManagedDataAccess.EntityFramework的引用从包管理器安装的引用替换为oracle客户端安装程序安装的引用,可以修复此问题。版本相同,但这些DLL上的内部版本号不同

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30407213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档