我正在创建一个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,但没有找到任何可以帮助我解决这个问题。
3条答案
按热度按时间wgeznvg71#
对于dotnet6,我得到了同样的异常。只保留了包:Oracle.ManagedDataAccess.Core并删除了所有其他与oracle相关的内容,它可以正常工作。
gz5pxeao2#
删除“Oracle. ManagedDataAccess”。我同时安装了“Oracle.ManagedDataAccess”和“Oracle.ManagedDataAccess.Core”。导致此问题的原因很可能是“Oracle.ManagedDataAccess”适用于.NET Framework,而不是.NET Core/.NET 6。
a9wyjsp73#
我遇到了同样的问题。.net核心版本与.net framework版本“Oracle.ManagedDataAccess.dll”同名,但版本号较低。因此Visual Studio从GAC而不是nuget包中获取较高版本。-〉删除GAC版本。