Windows 박스에 Apache Qpid Java 브로커의 M4 릴리스를 설치하고 qpid-server를 통해 기본 구성을 사용하여 시작했습니다. .bat 스크립트).RabbitMQ C# 클라이언트가 Apache Qpid와 통신하지 않습니다. Java 브로커
이제 RabbitMQ C# 클라이언트 라이브러리 (.NET 3.0 용으로 컴파일 된 버전 1.5.3)를 사용하여 대기열에 메시지를 게시하려고합니다. 내 코드는 다음과 같습니다 기본적으로
public void PublishMessage(string message)
{
ConnectionFactory factory = new ConnectionFactory();
factory.Parameters.VirtualHost = "...";
IProtocol protocol = Protocols.FromEnvironment();
using (IConnection conn = factory.CreateConnection(protocol, "localhost", 5672))
{
using (IModel ch = conn.CreateModel())
{
string exchange = "...";
string routingKey = "...";
ch.BasicPublish(exchange, routingKey, null, Encoding.UTF8.GetBytes(message));
}
}
}
, 내가 factory.Parameters.VirtualHost
및 문자열 exchange
및 routingKey
에 사용할 값 것을 확실 해요. 나는 다양한 조합을 시도했지만, 아무것도 작동하는 것 같다 없다 - 내가있어 가장 가까운이 (가) Qpid 서버 로그에 다음과 같은보고있다 :
2009-03-19 17:11:04,248 WARN [pool-1-thread-1] queue.IncomingMessage (IncomingMessage.java:198) - MESSAGE DISCARDED: No routes for message - Message[(HC:896033 ID:1 Ref:1)]: 1; ref count: 1
하지만, 아무튼 그걸로 뭘 해야할지 모르겠다.
내 클라이언트 코드에서 필요한 구성 값에 대한 조언 (virtualhosts.xml의 기본 Qpid 구성을 사용하고 있음을 기억하십시오)에 많은 도움이됩니다. 가상 호스트, 교환, 대기열 및 라우팅 키에 대한보다 일반적인 정보와 Qpid가 이들을 모두 연결하는 방법도 매우 유용합니다.
내가 결국이 작업을 얻을 수 있었다, 그냥 참조를 위해, 사전에앨런