如何调试使用 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 以重新处理。
我正在尝试调试现有的服务总线,它使用 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 以重新处理。