【问题标题】:How to read MSMQ messages from a remote machine without installing message queueing on local machine?如何从远程机器读取 MSMQ 消息而不在本地机器上安装消息队列?
【发布时间】:2013-01-19 08:22:45
【问题描述】:

有一台远程机器(我们称之为 MSMQ 机器)安装了 MSMQ 并被其他几个进程使用。我想从我的本地机器上读取 MSMQ 机器的给定私有队列上的消息 - 但是,我想避免在我的机器上安装消息队列,因为我需要的只是检查和监视消息。我不会发送或接收消息(至少不会存储它们),我只是想“偷看”它们。

有没有办法做到这一点?我现在有一个更像这样的代码:

public string CheckMessageQueue(machine, queue)
{
    StringBuilder Ret = new StringBuilder();
    var path = machine "\Private$\" + queue;
    try
    {
        MessageQueue mq = new MessageQueue(path);
        Message msg = new Message();
        msg = mq.Peek();
        Console.WriteLine(msg.ToString());
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
    }
}

如果我运行上面的代码,我会收到错误消息

“此计算机上尚未安装消息队列。”

【问题讨论】:

  • 另一种选择可能是使用 web-api 在目标 (MSMQ) 机器上创建一些端点,然后从客户端访问 那个

标签: c# .net msmq


【解决方案1】:

不,除了在本地计算机上安装 MSMQ 之外别无他法。客户端库使用本地服务器与远程服务器通信。

【讨论】:

  • 如何在 Windows 7 和 Windows 8 中以编程方式静默安装 MSMQ?
  • 您可以使用 get-carbon get-carbon.org/help/Install-Msmq.html 中的 Install-MSMQ PowerShell cmdlet。但是对于 Win 7,它似乎不是那么稳定。或者您可以使用 WiX 自定义操作来安装它,就像在这个答案 stackoverflow.com/a/21379182/131645 中一样。但我建议您手动安装它,因为它是一个服务器组件,可以像 IIS 一样在客户端计算机上运行。
猜你喜欢
  • 1970-01-01
  • 2012-04-05
  • 2012-09-24
  • 1970-01-01
  • 1970-01-01
  • 2014-07-29
  • 2011-05-23
  • 2011-07-31
  • 2012-02-12
相关资源
最近更新 更多