ODP.Net 驱动程序在 .NET Core 5.0 上引发异常

ODP.Net Driver Throwing Exception on .NET Core 5.0(ODP.Net 驱动程序在 .NET Core 5.0 上引发异常)
本文介绍了ODP.Net 驱动程序在 .NET Core 5.0 上引发异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将我的数据库应用程序从 .NET Core 3.1 移植到 .NET Core 5.0.

I am trying to port my database application from .NET Core 3.1 to .NET Core 5.0.

运行以下代码时,

        public async Task<List<T>> LoadDataFromSQL<T, U>(string sql, U parameters, string connectionStringName)
        {
            using (IDbConnection connection = new OracleConnection(await GetConnectionString()))
            {
                var rows = await connection.QueryAsync<T>(sql,
                                                          parameters,
                                                          commandType: CommandType.Text);
                return rows.ToList();
            }
        } 

我收到此异常:

"System.Reflection.TargetInvocationException: 调用的目标已抛出异常. --->System.TypeInitializationException: 'OracleInternal.ServiceObjects.OracleConnectionImpl' 的类型初始值设定项引发异常. --->System.TypeInitializationException: 'Oracle.ManagedDataAccess.Types.TimeStamp' 的类型初始值设定项引发异常. --->System.NotSupportedException:BinaryFormatter 序列化和反序列化在此应用程序中被禁用.有关详细信息,请参阅 https://aka.ms/binaryformatter. 在 OracleInternal.Common.OracleTimeZone.GetInstance() 在 Oracle.ManagedDataAccess.Types.TimeStamp..cctor() --- 内部异常堆栈跟踪结束 --- 在 Oracle.ManagedDataAccess.Types.TimeStamp.InitializelatestTZversion() 在 OracleInternal.ServiceObjects.OracleConnectionImpl..cctor() --- 内部异常堆栈跟踪结束 --- 在 OracleInternal.ServiceObjects.OracleConnectionImpl..ctor() --- 内部结束,除了离子堆栈跟踪 --- "

"System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'OracleInternal.ServiceObjects.OracleConnectionImpl' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Oracle.ManagedDataAccess.Types.TimeStamp' threw an exception. ---> System.NotSupportedException: BinaryFormatter serialization and deserialization are disabled within this application. See https://aka.ms/binaryformatter for more information. at OracleInternal.Common.OracleTimeZone.GetInstance() at Oracle.ManagedDataAccess.Types.TimeStamp..cctor() --- End of inner exception stack trace --- at Oracle.ManagedDataAccess.Types.TimeStamp.InitializelatestTZversion() at OracleInternal.ServiceObjects.OracleConnectionImpl..cctor() --- End of inner exception stack trace --- at OracleInternal.ServiceObjects.OracleConnectionImpl..ctor() --- End of inner except ion stack trace --- "

是否可以通过我的应用程序解决此问题?

Is is possible to work around this from my application?

我使用的是最新版本的 Oracle.ManagedDataAccess.Core 2.19.91,发布于 2020 年 10 月 22 日.另外,我使用的是 Dapper 2.0.35.

I am using the latest version of Oracle.ManagedDataAccess.Core 2.19.91, release on 10/22/2020. Also, I am using Dapper 2.0.35.

推荐答案

我发现 Oracle 正在为此进行修复,该修复应该很快就会推出.

I discovered that Oracle is working on a fix for this which should be available soon.

与此同时,如果有人遇到此问题,有一个解决方法.

In the meantime, in case anyone runs into this issue there is a workaround.

在您的项目文件中,您可以将 XML 语句添加到 EnableUnsafeBinaryFormatterSerialization.

In your project file, you can add the XML statement to EnableUnsafeBinaryFormatterSerialization.

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
  </PropertyGroup>

这篇关于ODP.Net 驱动程序在 .NET Core 5.0 上引发异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

SQL to Generate Periodic Snapshots from Transactions Table(用于从事务表生成定期快照的SQL)
MyBatis support for multiple databases(MyBatis支持多个数据库)
Oracle 12c SQL: Missing column Headers in result(Oracle 12c SQL:结果中缺少列标题)
SQL query to find the number of customers who shopped for 3 consecutive days in month of January 2020(查询2020年1月连续购物3天的客户数量)
How to get top 10 data weekly (This week, Previous week, Last month, 2 months ago, 3 month ago)(如何每周获取前十大数据(本周、前一周、上个月、2个月前、3个月前))
Select the latest record for an Id per day - Oracle pl sql(选择每天ID的最新记录-Oracle pl SQL)