C# 如何将消息异步发布到.NET Core中的MSMQ?

C# 如何将消息异步发布到.NET Core中的MSMQ?,c#,messaging,msmq,.net-core,C#,Messaging,Msmq,.net Core,似乎没有可用的客户端,或者我只是在错误的名称空间中查找。这是如何实现的,还是我必须找到另一个消息服务的答案?MSMQ是Windows/Windows Server的一部分,因此不是独立于平台的,是vanilla.NET Core的一部分。如果需要System.Messaging framework,则需要以.NET framework为目标。说到这一点有点让人困惑,但这是一个很好的例子,说明了在新的微软世界中两者之间的固有差异 有关Microsoft的解释,请参见将消息发布到MSMQ本质上是同步

似乎没有可用的客户端,或者我只是在错误的名称空间中查找。这是如何实现的,还是我必须找到另一个消息服务的答案?

MSMQ是Windows/Windows Server的一部分,因此不是独立于平台的,是vanilla.NET Core的一部分。如果需要System.Messaging framework,则需要以.NET framework为目标。说到这一点有点让人困惑,但这是一个很好的例子,说明了在新的微软世界中两者之间的固有差异


有关Microsoft的解释,请参见

将消息发布到MSMQ本质上是同步的(如中所述,它的最低级别API是同步的),因此任何异步API都只不过是一个(可能效率低下的)包装器。不过,接收可以异步完成。那么,微软是否还有另一个霍金?我找不到这方面的任何东西。是的,我看到了,但我不想依赖.NET经典框架。我正在尝试构建一个独立于平台的项目。微软提供的唯一独立于平台的解决方案是基于云的,比如Azure Service Bus。如果您想要一个独立于平台的队列系统,您需要自己托管,您必须寻找其他地方,如RabbitMQ、ZeroMQ等。但是,我希望大多数都没有.NET核心绑定。关于工具/库的任务已经离题了,所以我就到此为止。假设我希望使用新的MVC功能和.Net核心依赖注入,但仍然希望通过MSMQ进行通信。这不可能吗?我可以理解为什么它不在核心框架中,但似乎我应该能够向项目中添加一些依赖于Windows的Nuget软件包来实现这一点。如果您在Windows上托管它,这是可能的。这个答案毫无意义,因为没有任何东西可以阻止microsoft添加dotnetcore绑定。不在netstandard中,但仍然可以添加绑定。2016年以来的MSMQ支持SOAP,因此您甚至不需要使用本机接口。