如何调试使用 MSMQ 获取消息的服务?

How to debug a service which uses MSMQ to get messages?

我正在尝试调试现有的服务总线,它使用 NServiceBus 从 MSMQ 获取消息。

这是我的代码中用于处理 MFNM02 消息的消息处理程序。

public class ITKMFNM02Handler : Framework.Messaging.BusEventHandler<MFNM02>
{
    protected override void HandleMessage(MFNM02 message)
    {
        ProcessMessages eng = new ProcessMessages();

        eng.ProcessMFNM02(message);
    }
}

这些消息通过 app.config

中的以下行绑定到特定队列
<UnicastBusConfig>
<MessageEndpointMappings>
    <add Messages="Ascribe.EIE.Messages.ITK.V1" Endpoint="eiequeue@EHILP-092" />
</MessageEndpointMappings>
</UnicastBusConfig>

现在我使用队列资源管理器将消息直接放入 "eiequeue" MSMQ,但服务总线未拾取消息。

请告诉我我缺少什么

NServiceBus 消息具有特定的格式,简单地通过 Queue Explorer 推送消息意味着它们无法被 NSB 处理。您需要在消息中包含格式正确的消息 body 以及预期的 headers。

您可以使用我们的文档网站 here.

中的原生发送助手之一,而不是 Queue 资源管理器

此外,如果您在端点上配置审核 queues,您可以获得使用该端点处理的实际消息的副本,然后使用 Queue Explorer,您可以修改它们的副本并将它们送回原来的 queue 以重新处理。