我正在使用 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,所以我添加了注册表设置来支持它。我没有收到任何错误或任何东西 - 它只是没有从队列中提取消息。
我错过了一些配置或权限问题吗?有什么方法可以查看为什么它不起作用?
[编辑] 我刚刚注意到 website_subscriptions 队列是来自框架的所有消息:AddPeerMessage 和 AddPeerSubscriptionMessage。来自服务的所有消息(上例中的 SomethingHappened)都在错误队列中。