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

时间:2017-07-15 08:48:20

标签: c# .net nservicebus

我正在尝试调试现有的服务总线,它使用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中,但服务总线不会接收消息。

请告诉我我错过了什么

1 个答案:

答案 0 :(得分:3)

NServiceBus消息具有特定格式,只是通过队列资源管理器推送消息意味着它们无法由NSB处理。您需要在邮件中包含格式正确的邮件正文以及预期的标题。

您可以使用我们的文档网站here中的一个本机发送帮助程序代替Queue Explorer。

此外,如果在端点上配置审核队列,则可以获得使用该端点处理的实际消息的副本,然后使用队列资源管理器修改它们的副本并将它们发送回原始队列以获取它们重新处理。