1

我处于需要断开 RabbitMQ 并使用 EasyNetQ 重新连接的情况。我通过按照文档中的描述处理 IBus 来做到这一点。

https://github.com/EasyNetQ/EasyNetQ/wiki/connecting-to-rabbitmq

“要关闭连接,只需处置总线……这将关闭连接、通道、消费者和 EasyNetQ 使用的所有其他资源。”

但是,当我调用创建新总线时,它仍显示为已断开连接并已处理。

bus = RabbitHutch.CreateBus(connString);
bus.Dispose();
resolver.EasyNetQKernel.Release(bus);
bus = RabbitHutch.CreateBus(connString);
bus.Receive<Command>("CommandQueue"), Process);

此时,当我尝试重置我的消费者时,我收到一个带有消息“总线已被处置”的 EasyNetQException。

为什么我不能在处理总线后重新创建它?

4

1 回答 1

0

我没有使用过 Ninject,但你可以尝试处理和重新创建整个 Ninject 容器而不是总线实例吗?我认为您的容器可能会保留已处理的旧引用。

于 2016-11-03T21:46:25.317 回答