Ho avuto lo stesso problema come hai fatto e quello che ho fatto è stato modificare il codice sorgente del coniglioMQDotNetClient.
File: RabbitMQInputChannel.cs
public override void Open(TimeSpan timeout)
{
if (State != CommunicationState.Created && State != CommunicationState.Closed)
throw new InvalidOperationException(string.Format("Cannot open the channel from the {0} state.", base.State));
OnOpening();
#if VERBOSE
DebugHelper.Start();
#endif
//Create a queue for messages destined to this service, bind it to the service URI routing key
#if USE_DEFINED_QUEUE_NAMES
//here we create a queue that uses the name given in the service address in the wcf binding.
//if the address in the web.config is: soap.amq:///QueueName
//the name of the queue will be: QueueName
//LVV
string queue = m_model.QueueDeclare(base.LocalAddress.Uri.PathAndQuery, true, false, false, null);
#else
string queue = m_model.QueueDeclare();
#endif
m_model.QueueBind(queue, Exchange, base.LocalAddress.Uri.PathAndQuery, null);
//Listen to the queue
m_messageQueue = new QueueingBasicConsumer(m_model);
m_model.BasicConsume(queue, false, m_messageQueue);
#if VERBOSE
DebugHelper.Stop(" ## In.Channel.Open {{\n\tAddress={1}, \n\tTime={0}ms}}.", LocalAddress.Uri.PathAndQuery);
#endif
OnOpened();
}
compilare con l'USE_DEFINED_QUEUE_NAMES bandiera. Questo creerà un nome di coda con il nome che hai dato nel tuo file app.config o web.config. Puoi sempre modificare le opzioni delle code su QueueDeclare (...) se vuoi che le tue code si comportino diversamente da quelle che sto creando. Cheers!
Grazie. Questa è la risposta che stavo cercando. In pratica rende inutile persino avere un binding WCF per rabbitMQ se non può darti questo controllo. –