我处于需要断开与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;
为什么我不能在处理它后重新创建总线?
答案 0 :(得分:0)
我还没有使用过Ninject,但您是否可以尝试处理并重新创建整个Ninject容器而不是总线实例?我认为你的容器可能会保留已经处理过的旧引用。