2013-01-19 61 views
5

में होता है मेरे पास 2.8.2 खरगोशएमक्यू सर्वर और 2.8.2 क्लाइंट डीएल है, कोड को कतार घोषित करने और एक संदेश प्राप्त करने के लिए कोड है, इसे सही ढंग से काम करता है (सभी मापदंडों सही कर रहे हैं):अपवाद 'एएमक्यूपी ऑपरेशन बाधित था' (कोड = 406) .NET क्लाइंट प्रोग्रामिंग

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 डाउनलोड, मैं एक ही कोड का उपयोग करें और अपवाद है:

एएमक्यूपी ऑपरेशन बाधित था: एएमक्यूपी क्लोज-कारण, द्वारा शुरू किया गया पीयर, कोड = 406, टेक्स्ट = "PRECONDITION_FAILED - पैरामीटर '/' नहीं बराबर vhost में कतार '172.16.1.1' के लिए ", CLASSID = 50, methodId = 10, कारण =

उत्तर

16

जब आप अलग से एक मौजूदा कतार फिर से घोषित आप आमतौर पर है कि त्रुटि संदेश मिलता है मापदंडों। यह देखने के लिए कि कतार पहले से मौजूद है या नहीं, प्रबंधन कंसोल में जांचें। यदि ऐसा होता है, तो इसे हटाने का प्रयास करें और फिर अपना कोड फिर से चलाएं।