BinaryFormatter exception in .Net 5

Anton
Anton Member Posts: 18

Hi,
after migrating project to .Net 5 we started to get this error:

System.NotSupportedException: BinaryFormatter serialization and deserialization are disabled within this application. See https://aka.ms/binaryformatter for more information.
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) at SolaceSystems.Solclient.Utils.Types.Utilities.DeepCopy[T](T source)
at SolaceSystems.Solclient.Messaging.BaseProperties.Clone()
at SolaceSystems.Solclient.Messaging.Native.ContextImpl..ctor(ContextProperties ctxProps, EventHandler1 contextEventHandler) at SolaceSystems.Solclient.Messaging.Native.ContextFactoryImpl.CreateContext(ContextProperties contextProperties, EventHandler1 contextEventHandler)
at SolaceSystems.Solclient.Messaging.Adapter.ContextFactoryAdapter.CreateContext(ContextProperties contextProperties, EventHandler1 contextEventHandler) at SolaceSystems.Solclient.Messaging.ContextFactory.CreateContext(ContextProperties contextProperties, EventHandler1 contextEventHandler)

This can be turned off by adding true to the project file. But this obviously can't be used as a long-term solution. When can we expect new NuGet package with this properly solved on your side?

Thanks

Tagged:

Comments

  • TomF
    TomF Member, Employee Posts: 288 Solace Employee

    Hi @Anton, we don't officially support .Net 5 yet but it's on our roadmap. I'll let @amackenzie comment further on due dates as he's better placed to do that. Support for .Net 5 should fix BinaryFormatter.

  • Anton
    Anton Member Posts: 18

    Hi,

    What do you mean by do not officially support? It’s a netstandard 2.0 library, so I assume that it should still work nicely with .Net 5?

    Regards

  • TomF
    TomF Member, Employee Posts: 288 Solace Employee

    Hi @Anton, I meant that Solace doesn't support .Net 5 yet.

  • Anton
    Anton Member Posts: 18

    Sorry, but I still don't get it. Besides that BinaryFormatter issue for which we have workaround what could it be else? SolaceSystems.Solclient.Messaging is a netstandard2 lib so it should work nicely in .Net 5.

  • TomF
    TomF Member, Employee Posts: 288 Solace Employee

    @Anton yes good point: I probably should have said "officially supported" - so technically it will work but if you see a bug, the answer from our support/R&D team will be "we will do our best, but can't guarantee anything." We do plan to officially support it soon.

  • Anton
    Anton Member Posts: 18

    @TomF I see that new version of SolaceSystems.Solclient.Messaging was release about 13 days ago. Does it have fix for .Net 5? Also, is there any release notes for the new versions?

  • marc
    marc Member, Administrator, Moderator, Employee Posts: 584 admin

    Hi @Anton,
    I haven't gotten a chance to review the release notes myself for your particular fix but you can find the release notes alongside the API on our downloads page: https://solace.com/downloads/?fwp_downloads=solace-apis
    -Marc

  • Anton
    Anton Member Posts: 18

    @marc thanks, looks like it didn't make it to this release.

  • allmhhuran
    allmhhuran Member Posts: 26
    edited September 28 #10

    Yikes, I have just run into this problem myself.

    I've been developing on my machine for while under .net5 with no issues. No complaints or warnings from visual studio on build, all tests passed, etc.

    But I've just deployed to an azure VM to run as a service in production, and I get

    Exception Info: System.TypeInitializationException: The type initializer for 'System.Runtime.Serialization.Formatters.Binary.Converter' threw an exception.

    The last call in the stack that references the solace libraries at SolaceSystems.Solclient.Utils.Types.Utilities.DeepCopy[T](T source)

    This is something of an issue. And whoa... we're 8 months on from where this thread ended. Are we still not .net5 compatible?