我希望这对于某人来说很容易指出我做了些蠢事!
我最近尝试在我们的系统上设置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();
}
如果我能提供有助于发现问题的更多信息,请与我们联系。
提前致谢! 吉姆。
答案 0 :(得分:0)
我不知道这是否有帮助,但是我们遇到了类似的问题。在我们的情况下,我们在发布服务中拥有Azure Service Bus和不必要的代码:
_busHandle = await _bus.StartAsync(cancellationToken).ConfigureAwait(false);
删除后,问题已解决。