永久订阅MassTransit - 重启后没有消息

时间:2013-09-17 11:57:12

标签: msmq publish-subscribe masstransit

我希望这对于某人来说很容易指出我做了些蠢事!

我最近尝试在我们的系统上设置MassTransit,但是我遇到了一些问题,我的订阅者没有处理这些消息。消息处理得很好,直到订阅服务重新启动/重新部署,之后它们就不起作用。

订阅服务是Windows服务。我正在使用MSMQ以及与MassTransit捆绑的RuntimeServices(v2.8)。

我希望我在设置永久订阅方面遗漏了一些东西,但我一直在寻找更多信息而没有太多运气。

任何人都知道我是否设置了错误的内容?

这是初始化代码:

发布服务

    public static void Activate()
    {
        Bus.Initialize(bus =>
        {
            bus.UseMsmq(msmq => msmq.UseSubscriptionService("msmq://localhost/subscriptions"));
            bus.UseControlBus();
            bus.ReceiveFrom("msmq://localhost/our_webservice");
        });

    }

    public static void Shutdown()
    {
        Bus.Shutdown();
    }

订阅服务

    private void ConfigureMessageBus()
    {
            Bus.Initialize(bus =>
            {
                bus.UseMsmq(msmq => msmq.UseSubscriptionService("msmq://localhost/subscriptions"));
                bus.ReceiveFrom("msmq://localhost/commissionupdate_service");
                bus.Subscribe(s => s.Consumer<CommissionUpdatedHandler>().Permanent());
            });
     }

    protected override void OnStop()
    {
        Bus.Shutdown();
    }

如果我能提供有助于发现问题的更多信息,请与我们联系。

提前致谢! 吉姆。

1 个答案:

答案 0 :(得分:0)

我不知道这是否有帮助,但是我们遇到了类似的问题。在我们的情况下,我们在发布服务中拥有Azure Service Bus和不必要的代码:

_busHandle = await _bus.StartAsync(cancellationToken).ConfigureAwait(false);

删除后,问题已解决。