如何断开连接,然后使用EasyNetQ从RabbitMQ重新连接?

时间:2016-11-01 14:38:06

标签: c# rabbitmq message-queue easynetq

我处于需要断开与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并显示消息&#34; Bus已被处理。&#34;

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

1 个答案:

答案 0 :(得分:0)

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