从另一台计算机发送MSMQ消息

时间:2012-07-11 09:50:23

标签: c# .net msmq messaging

我有一个程序将MSMQ消息发送到远程机器 这很好。

但是,在调试期间,我们将在许多不同的计算机上运行程序,而在远程服务器上收到消息时会出现问题,因为没有为我们的开发计算机设置映射等。

我想要做的是能够指定一台机器来发送MSMQ消息;一个具有所需映射的远程计算机,以便远程计算机正确接收消息。

目前,我使用此路径创建了一个队列:FormatName:DIRECT=http://the.remote.machine.co.uk/msmq/frommycompany

然后,我通过创建消息对象并在事务中发送消息来发送消息。

如何从运行程序的计算机以外的计算机将消息发送到远程计算机,以便远程计算机可以正确接收消息?

2 个答案:

答案 0 :(得分:1)

如果我正确理解了问题,我建议使用充当路由器的服务。

您可能希望使用首先由开发计算机上的所有客户端调用的 WCF服务,然后将其自身充当将消息发送到目标计算机的唯一客户端。 WCF非常适合将消息发送到具有内置功能的队列中。

或者 - 或者组合 - 您可以考虑使用某些消息传递框架,例如NServiceBus,使您的生活更轻松地使用MSMQ。

NServiceBus为您提供了很大的灵活性,可以配置您的消息应该去哪里以及谁应该订阅它们。大多数这可以简单地在应用程序配置文件中设置。

答案 1 :(得分:1)

如果我理解你的问题,你想从机器1发送到机器2上的队列。鉴于这是你想要做的尝试:

       System.Messaging.Message msg = new System.Messaging.Message();
        msg.Body = "This is a test message";
        msg.Label = "Test Message";
        msg.Formatter = new ActiveXMessageFormatter();

        MessageQueue queue = new MessageQueue("FormatName:DIRECT=OS:machine2\\Private$\\recievingQueue");

        queue.Send(msg);
相关问题