不NServiceBus,在任何时候,以任何理由,有权发布空消息MSMQ,如果是这样,为什么,什么时候发生?以下更长解释。为什么NServiceBus将空邮件发送到MSMQ?
我正在使用的一个项目使用NServiceBus版本4.该版本不允许在单个进程中为不同队列“多宿主”事件处理程序,如果您的项目包含40个左右不同的队列。
要发展克服这个问题,我做了一个小的“路由器”的应用程序,它会监听所有必要的MSMQ队列和简单的转发所有邮件成一个单一的“统一”的队列。这个“统一”队列被指定为“统一端点”进程的队列名称,它引用所有处理程序的所有消息,这些消息通常会从这些各种队列中处理。
设置种类的作品,似乎(与大多数处理程序,至少),但有一个神秘的行为(我认为,这可能与设置而不是与某些工作其他处理程序)。也就是说,只要项目启动,我的“路由器”立即发现一些空的MSMQ消息,发布到它必须收听的队列中。显然,由于某种原因,NSB在启动期间发布这些消息(并且在NSB有机会再次查看它们之前,很可能路由器正在掐死它们)。
我相信这不是我的实施的人工制品,因为除非NSB也启动,否则不会发生这种情况。我很好奇原因。
谢谢,我会尽快查看标题。但后来我的问题在这里变得更加深入 - 为什么这里有任何消息被“发送”(到了被转发给我的外部监听器的地步)?发送这样的消息是MSMQ要求吗?是否有任何规范,说明有关这些“订阅”信息的内容,他们的意图是什么,以及它们是如何由第三方处理的,而第三方恰好接收这些信息? –
我编辑了我的答案以包含该信息。 –
太好了,谢谢。链接到你添加的文档(奇怪的是我自己没有找到它,我确定我全部阅读了它)解释了我正在寻找的一切! –