如何使用activeMQ NMS和C#实现同步请求-响应应用程序?

如何使用activeMQ NMS和C#实现同步请求-响应应用程序?,c#,.net,jms,activemq,nms,C#,.net,Jms,Activemq,Nms,我可以通过生产者将消息发送到队列('test.Queue')(我也可以在另一端接收相同的消息) 但我无法使用consumer.receive()方法从回复目的地(“confirm”)接收回复消息。 没有错误。但消费者没有收到任何味精。请帮我摆脱它。 代码如下:- class Program { private const String URI = "tcp://localhost:61616"; private const String DESTINATION = "te

我可以通过生产者将消息发送到队列('test.Queue')(我也可以在另一端接收相同的消息) 但我无法使用consumer.receive()方法从回复目的地(“confirm”)接收回复消息。 没有错误。但消费者没有收到任何味精。请帮我摆脱它。 代码如下:-

    class Program
{
    private const String URI = "tcp://localhost:61616";
    private const String DESTINATION = "test.queue";
    static void Main(String[] args)
    {
        ConnectionFactory connectionFactory = new ConnectionFactory(URI);
        connectionFactory.ClientId = connectionFactory.ClientIdGenerator.GenerateId(); ;
        IMessageProducer prod;
        String s = String.Empty;
        while (s.ToLower() != "exit")
        {
            s = Console.ReadLine();
            ISession ses = connectionFactory.CreateConnection().CreateSession();
            prod = ses.CreateProducer();
            IMessage msg=ses.CreateTextMessage(s);
            NmsDestinationAccessor destinationResolver = new NmsDestinationAccessor();
            IDestination destination = destinationResolver.ResolveDestinationName(ses, DESTINATION);
            IDestination replyDestination = destinationResolver.ResolveDestinationName(ses, "confirm");
            IMessageConsumer consumer = ses.CreateConsumer(replyDestination);
            prod.Send(destination, msg);
            IMessage im= consumer.Receive();
            ses.Commit();
            Console.WriteLine(im.ToString());
        }
    }
}

我不是activeMQ专家,但我知道在大多数JMS实现中(我认为NMS几乎遵循1:1),您需要在连接上调用Start(),以允许消费开始

请注意,它应该是消费的同步接收器这是正确的,不需要调用Start()在连接上,消费者将不会收到任何消息。