解决 .Net 5 无法连接 Oracle

  从.Net3.1 升级到 .Net5 后发现在连接Oracle时出现异常:Resolving binaryformatter obsoletion errors,通过查阅资料找到了此问题的微软官方说明Resolving binaryformatter obsoletion errors。文中提到:从 .Net5.0 开始 BinaryFormatter.erializationBinaryFormatter被禁用了。 由于 Oracle.ManagedDataAccess.Core 2.19.100 还未调整代码,导致不能正常连接数据库。
  如果希望在ASP.NET5.0+应用程序中继续使用BinaryFor,则必须修改当前项目的.csproj文件,以重新启用BinaryFormat功能。在<PropertyGroup>节点中添加:

<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>

  详细内容如下(后续可视 Oracle 对这个问题的处理情况,进行关闭此选项 )。

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

参考:
https://github.com/oracle/dotnet-db-samples
https://github.com/dotnet/aspnetcore/issues/27872

private static int Size = 1000;

[Benchmark]
public void Bag()
{
    ConcurrentBag<int> bag = new();
    for (int i = 0; i < Size; i++)
    {
        bag.Add(i);
    }
}

[Benchmark]
public void Queue()
{
    ConcurrentQueue<int> bag = new();
    for (int i = 0; i < Size; i++)
    {
        bag.Enqueue(i);
    }
}
posted @ 2021-08-04 23:52  Sunlery  阅读(282)  评论(0编辑  收藏  举报
分享到: 更多