我有一个在本地工作的项目,在我们的开发服务器上,在我们的生产服务器上。
当我试图在测试服务器上运行它时,我得到了下面的错误,除了茫然地盯着我的屏幕之外,我不知道该怎么办。提示?追查问题根源的流程?
我已经为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中包含以下块:
<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>
和
<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="DATA SOURCE=pdxcludds108.pacificorp.us:11086/DDS1086.PACIFICORP.US;PASSWORD=XXXXXXX;PERSIST SECURITY INFO=True;USER ID=XXX"" providerName="System.Data.EntityClient" />
</connectionStrings>
注意:还有其他项目在此服务器上运行,它们只是使用不同版本的Oracle client for .Net。其他任何一个都没有只使用托管驱动程序。我正在寻找一种方法来挖掘这个错误,一些关于该类型的来源和加载的提示。
发布于 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
:
OraProvCfg /action:ungac /providerPath:Oracle.ManagedDataAccess
发布于 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
发布于 2015-06-24 22:06:00
通过将项目中对Oracle.ManagedDataAccess和Oracle.ManagedDataAccess.EntityFramework的引用从包管理器安装的引用替换为oracle客户端安装程序安装的引用,可以修复此问题。版本相同,但这些DLL上的内部版本号不同
https://stackoverflow.com/questions/30407213
复制相似问题