我正在尝试将我的数据库应用程序从 .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: 调用的目标已抛出异常.\r\n --->System.TypeInitializationException: 'OracleInternal.ServiceObjects.OracleConnectionImpl' 的类型初始值设定项引发异常.\r\n --->System.TypeInitializationException: 'Oracle.ManagedDataAccess.Types.TimeStamp' 的类型初始值设定项引发异常.\r\n --->System.NotSupportedException:此应用程序中禁用了 BinaryFormatter 序列化和反序列化.有关详细信息,请参阅 https://aka.ms/binaryformatter.\r\n 在 OracleInternal.Common.OracleTimeZone.GetInstance()\r\n 在 Oracle.ManagedDataAccess.Types.TimeStamp..cctor()\r\n --- 内部异常堆栈跟踪结束 ---\r\n 在 Oracle.ManagedDataAccess.Types.TimeStamp.InitializelatestTZversion()\r\n 在 OracleInternal.ServiceObjects.OracleConnectionImpl..cctor()\r\n --- 内部异常堆栈跟踪结束 ---\r\n 在 OracleInternal.ServiceObjects.OracleConnectionImpl..ctor()\r\n --- 内部结束,除了离子堆栈跟踪 ---\r\n"
"System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.\r\n ---> System.TypeInitializationException: The type initializer for 'OracleInternal.ServiceObjects.OracleConnectionImpl' threw an exception.\r\n ---> System.TypeInitializationException: The type initializer for 'Oracle.ManagedDataAccess.Types.TimeStamp' threw an exception.\r\n ---> System.NotSupportedException: BinaryFormatter serialization and deserialization are disabled within this application. See https://aka.ms/binaryformatter for more information.\r\n at OracleInternal.Common.OracleTimeZone.GetInstance()\r\n at Oracle.ManagedDataAccess.Types.TimeStamp..cctor()\r\n --- End of inner exception stack trace ---\r\n at Oracle.ManagedDataAccess.Types.TimeStamp.InitializelatestTZversion()\r\n at OracleInternal.ServiceObjects.OracleConnectionImpl..cctor()\r\n --- End of inner exception stack trace ---\r\n at OracleInternal.ServiceObjects.OracleConnectionImpl..ctor()\r\n --- End of inner except ion stack trace ---\r\n"
是否可以通过我的应用程序解决此问题?
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 上抛出异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
有没有办法使用 SQL 获取有关服务器的信息Is there a way to get information about a server using SQL(有没有办法使用 SQL 获取有关服务器的信息)
如何在 Oracle 中通过 XPath 获取第一个元素How to get first element by XPath in Oracle(如何在 Oracle 中通过 XPath 获取第一个元素)
Oracle XMLTable-从父节点获取列Oracle XMLTable- fetching column from parent node(Oracle XMLTable-从父节点获取列)
如何从 XMLType 节点中提取元素路径?How to extract element-path from XMLType Node?(如何从 XMLType 节点中提取元素路径?)
使用取自序列的值将属性添加到 xmltypeAdd attribute to xmltype with value taken from sequence(使用取自序列的值将属性添加到 xmltype)
即使表达式值为空,如何强制执行 xmlforest creatHow to enforce xmlforest creat elements even if expression value is null?(即使表达式值为空,如何强制执行 xmlforest creat 元素?)