【发布时间】:2020-03-11 16:47:58
【问题描述】:
由于 RabbitMq 版本 3.8.0 队列默认使用 x-queue-type: classic 创建,这似乎导致 EasyNetQ 出现错误。
运行下面的sn -p会触发错误
this.bus.Receive(queueName, onMessage);
错误
The AMQP operation was interrupted: AMQP close-reason, initiated by Peer, code=406, text='PRECONDITION_FAILED - inequivalent arg 'x-queue-type' for queue 'TheQueue' in vhost '/': received none but current is the value 'classic' of type 'longstr'', classId=50, methodId=10
我做了一些测试,我知道问题出在队列类型上,我希望能够将 EasyNetQ 连接到这种队列,但我在文档中找不到有关如何执行此操作的任何参考。
【问题讨论】:
-
最初声明的队列在哪里?问题是您的easynetq 正在尝试重新声明一个已经存在的具有不同参数的队列。这里没有足够的信息来确定发生的位置。
-
@theMayer 提出了一个很好的观点。这个队列是在升级到 3.8 之前声明的吗?我希望能够重现并修复此问题。