我正在创建一个 ASP.NET API Core 应用程序来处理与 Oracle 数据库通信的 API 服务。
在运行时,当进程尝试通过 DbContext(实体框架)使用新的 Oracle 连接连接到数据库时,出现未处理的错误并强制应用程序停止。
myDbContext.Database.Connection.Open();
此行导致以下错误
System.TypeLoadException : '无法加载类型 来自程序集的“System.Security.Principal.WindowsImpersonationContext” 'mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=xxx'。'
我有一个旧的但类似的项目,它使用相同的代码并且工作正常。 使用的库与 Oracle Connector 相同:Oracle.ManagedDataAccess.EntityFramework
我试过的:
我首先访问此页面 'System.Security.Principal.WindowsImpersonationContext' 从程序集 'mscorlib' 尝试使用 Razor Engine 解析模板时出错 但没有找到任何可以帮助我解决这个问题的东西。
对于 dot net 6,我遇到了同样的异常。只保留包:Oracle.ManagedDataAccess.Core 并删除所有其他与 oracle 相关的包,它可以工作。
摆脱“Oracle.ManagedDataAccess”。我同时安装了“Oracle.ManagedDataAccess”和“Oracle.ManagedDataAccess.Core”。此问题很可能是因为“Oracle.ManagedDataAccess”适用于 .NET Framework 而不是 .NET Core/.NET 6.
我有同样的问题。 .NET Core 版本与 .NET Framework 版本
Oracle.ManagedDataAccess.dll
同名,但版本号较低。因此,Visual Studio 从 GAC 而不是 NuGet 包中获取更高版本。 -> 删除 GAC 版本。
同样的问题。我有 .NET Core/.NET2,我删除了
Oracle.ManagedDataAccess.client
并安装
Oracle.ManagedDataAccess.Core
来自 NuGet 包,但我必须选择以下版本 < 3.x that has no dependencies