我使用MassTransit 2.7.0版在Web服务和网站之间进行通信。 Web服务发布消息,网站订阅它们。
发布商服务:
ServiceBus = ServiceBusFactory.New(sbc =>
{
sbc.UseMsmq();
sbc.VerifyMsmqConfiguration();
sbc.ReceiveFrom("msmq://localhost/publisher");
sbc.UseMulticastSubscriptionClient();
});
订阅者网站:
ServiceBus = ServiceBusFactory.New(sbc =>
{
sbc.UseMsmq();
sbc.VerifyMsmqConfiguration();
sbc.ReceiveFrom("msmq://localhost/website");
sbc.UseMulticastSubscriptionClient();
sbc.Subscribe(s =>
{
s.Handler<SomethingHappened>(HandleSomethingHappened);
});
});
在我的开发机器上一切正常但在现场网站上没有。消息显示在website_subscriptions MSMQ队列中,但它们不会被订阅的网站接收。服务器确实有多个NIC,因此我添加了the registry settings to support that。我没有收到任何错误或任何错误 - 它只是没有从队列中获取消息。
我是否遗漏了一些配置或权限问题?有没有办法看出它为什么不起作用?
[编辑] 的 我刚注意到website_subscriptions队列是来自框架的所有消息:AddPeerMessage和AddPeerSubscriptionMessage。来自服务的所有消息(上例中的SomethingHappened)都在错误队列中。
答案 0 :(得分:0)
您可以尝试设置Log4Net或NLog集成以查看MassTransit中发生的情况。他们在记录大量有用的故障排除信息方面做得很好。