oracle 无法从程序集“mscorlib”加载类型“系统.安全.主体.WindowsImpersonationContext”

deikduxw  于 2023-01-04  发布在  Oracle
关注(0)|答案(3)|浏览(363)

我正在创建一个ASP.NETAPI核心应用程序,以处理与Oracle数据库通信的API服务。
在运行时,当进程尝试通过DbContext(实体框架)使用新的Oracle连接连接到DB时,会出现未处理的错误并强制应用程序停止。

myDbContext.Database.Connection.Open();

此行导致以下错误
系统类型加载异常:"未能从程序集" mscorlib,版本= 4.0.0.0,区域性=中性,PublicKeyToken = xxx "中加载类型" System. Security. Principal. WindowsImpersonationContext "。"
我有一个旧的但类似的项目,它使用相同的代码并且工作正常。Oracle Connector使用的库相同:* * Oracle.托管数据访问.实体框架**
我尝试了:

  • 卸载-重新安装Oracle.托管数据访问.实体框架,
  • 其他Oracle连接器(Oracle.管理数据访问、Oracle.管理数据访问.核心)也是如此
  • 安装系统.安全.主体
  • 将目标框架从3.1更改为5

我先去了这个页面'System.Security.Principal.WindowsImpersonationContext' from assembly 'mscorlib' error when trying to parse template with Razor Engine,但没有找到任何可以帮助我解决这个问题。

wgeznvg7

wgeznvg71#

对于dotnet6,我得到了同样的异常。只保留了包:Oracle.ManagedDataAccess.Core并删除了所有其他与oracle相关的内容,它可以正常工作。

gz5pxeao

gz5pxeao2#

删除“Oracle. ManagedDataAccess”。我同时安装了“Oracle.ManagedDataAccess”和“Oracle.ManagedDataAccess.Core”。导致此问题的原因很可能是“Oracle.ManagedDataAccess”适用于.NET Framework,而不是.NET Core/.NET 6。

a9wyjsp7

a9wyjsp73#

我遇到了同样的问题。.net核心版本与.net framework版本“Oracle.ManagedDataAccess.dll”同名,但版本号较低。因此Visual Studio从GAC而不是nuget包中获取较高版本。-〉删除GAC版本。

相关问题