How to publish messages asynchronously to MSMQ in .NET Core?
Asked Answered
M

1

11

There doesn't seem to be a client available, or maybe I'm just looking in the wrong namespace. How is this expected to be done, or is the answer that I have to find another message service?

Macao answered 9/11, 2016 at 20:0 Comment(6)
Publishing messages to MSMQ is inherently synchronous (as in, the lowest-level APIs for it are synchronous), so any asynchronous API would be no more than a (probably inefficient) wrapper. Receiving can be done asynchronously, though.Courtney
So, is there another one that MS is hawking? I can't find anything on this.Macao
#36721919Digitigrade
Yeah I saw that, but I don't want to be dependent on the .NET classic framework. I'm trying to build a platform-independent project.Macao
The only platform-independent solutions MS offers are cloud based, like Azure Service Bus. If you want a platform-independent queuing system that you host yourself, you'll have to look elsewhere, like RabbitMQ, ZeroMQ, etc. However, I expect most of those not to have .NET Core bindings (yet) either. Quests for tools/libraries are off-topic on SO, so I'll leave it at that.Courtney
MSMQ is dead: "As Microsoft is not making MSMQ available for .NET Core, building new systems using MSMQ is not recommended." (docs.particular.net/transports/selecting)Deform
R
12

MSMQ is part of Windows/Windows Server and is therefore not platform independent and part of vanilla .NET Core. If you want the System.Messaging framework, you need to target the .NET Framework. It's been a little confusing getting to this point but this is a good example of the inherent differences between the two in the new Microsoft world.

For Microsoft's explanation, please see https://learn.microsoft.com/en-us/dotnet/articles/standard/choosing-core-framework-server

Roentgenology answered 1/3, 2017 at 18:4 Comment(3)
So let's say I wish to use the new MVC features and .Net Core dependency injection, but still wish to communicate via MSMQ. Is that not possible? I can see why it's not in the core framework, but it seems like I should be able to add some Windows-dependent Nuget package to the project to do this.Braille
It's possible if you're hosting it on Windows.Cumberland
This answer makes no sense because nothing would stop microsoft from adding dotnetcore bindings. Not in netstandard, but still you CAN add bindings. MSMQ since 2016 supports SOAP, so you do not even need to use native interfaces. learn.microsoft.com/en-us/previous-versions/windows/desktop/…Passementerie

© 2022 - 2024 — McMap. All rights reserved.