SolaceSystems.SolClient.Messaging 升级到 .NET 8.0 时出错

问题描述 投票:0回答:1

我们在消息应用程序(流微服务)中使用 Assembly

SolaceSystems.SolClient.Messaging 
。我们的应用程序部署在 OpenShift 容器中。我们使用 C# 和 .NET 6.0。目前一切正常。

将我们的应用程序升级到 .NET 8.0(从 .NET 6.0)时,我们收到以下错误: System.Runtime.Searialization.Formatters.BinaryFormatter.Serialize(System.IO.STream,对象)

如上所述,.NET 8.0 是否不支持 Solace 的汇编?还是我错过了什么?

任何方向都会对我有很大帮助。

当我将 TargetFramework 更改为 .NET 6.0 时,一切都按预期工作,没有任何错误。但是当 TargetFramework 更改为 .NET 8.0 时,会抛出上述错误。

microservices openshift .net-8.0 solace-mq versionupgrade
1个回答
0
投票

问题是BinaryFormatter。它早在 .NET 5.0 中就被标记为已弃用/过时。

跳转到 .NET 8:BinaryFormatter 在大多数项目类型中被禁用

从 .NET 8 开始,受影响的方法在运行时在除 Windows 窗体和 WPF 之外的所有项目类型中抛出 NotSupportedException。 API 在所有项目类型中仍然过时(作为错误),包括 Windows 窗体和 WPF。

现在在 .NET 9.0 中:BinaryFormatter 从 .NET 9 中删除了

从 .NET 9 开始,我们不再在运行时包含 BinaryFormatter 的实现(.NET Framework 保持不变)。 API 仍然存在,但无论项目类型如何,它们的实现总是会引发异常。因此,设置现有的向后兼容性标志不再足以使用 BinaryFormatter。

您还没有说明异常是否是由于使用

SolaceSystems.SolClient.Messaging
引发的,或者是否是在代码的其他地方引发的。堆栈跟踪应该告诉您哪些代码正在尝试使用
BinaryFormatter
,直到您/我们知道我们将无法进一步指导您。

© www.soinside.com 2019 - 2024. All rights reserved.