1

我希望这将是一个容易有人指出我做了一些愚蠢的事情!

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

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

我希望我在设置永久订阅方面错过了一些东西,但我一直在寻找更多信息,但运气不佳。

任何人都知道我是否设置错误?

这是初始化代码:

出版服务

    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();
    }

如果我能提供更多有助于找到问题的信息,请告诉我。

提前致谢!吉姆。

4

1 回答 1

0

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

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

当我删除它时,问题就解决了。

于 2019-11-22T09:35:05.580 回答