1

我正在使用 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)都在错误队列中。

4

1 回答 1

0

您可以尝试设置 Log4Net 或 NLog 集成以查看 MassTransit 中发生的情况。他们在记录大量有用的故障排除信息方面做得很好。

于 2013-01-02T19:45:00.343 回答