16

我有一个 2.8.2 RabbitMQ 服务器和一个 2.8.2 客户端 dll,有声明队列并获取消息的代码,它工作正常(所有参数都正确):

IModel channel=null;

ConnectionFactory factory = new ConnectionFactory ();
factory.HostName = "192.168.68.4";
_QueueName = "172.16.1.1";

factory.UserName = "guest";
factory.Password = "guest";
factory.VirtualHost = "/";

factory.RequestedHeartbeat = 30;

if (factory.Endpoint == null) {
    Console.WriteLine (" factory.Endpoint==null ");
}


// 接受消息的队列名称是本地的IP地址
_QueueName = "172.16.1.1";
_RMQConnection = factory.CreateConnection ();

Console.WriteLine ("factory.CreateConnection()");

channel = _RMQConnection.CreateModel ();

channel.QueueDeclare(_QueueName, false, false,false,null);

但是当我下载 3.0.1 RabbitMQ 服务器和 3.0.1 客户端 dll 时,我使用相同的代码并出现异常:

AMQP 操作被中断:AMQP 关闭原因,由 Peer 发起,code=406,text="PRECONDITION_FAILED - vhost '/' 中队列 '172.16.1.1' 的参数不等效",classId=50,methodId=10,原因=

4

1 回答 1

38

当您使用不同的参数重新声明现有队列时,通常会收到该错误消息。检查管理控制台以查看队列是否已存在。如果是这样,请尝试删除它,然后重新运行您的代码。

于 2013-01-21T09:50:19.847 回答