如果我的MessageQueue是私有的,我的机器可以从另一台本地机器读取消息吗?

时间:2013-09-24 13:49:43

标签: c# msmq

我想从本地网络上的另一台计算机接收消息,因此我以这种方式创建了MessageQueue

private static string QueueName = ".\\Private$\\Q1";
    public void SendMessage()
    {           
        if (!MessageQueue.Exists(QueueName))
            MessageQueue.Create(QueueName);

        //
    }

    public void ReceiveMessage()
    {
        // Connect to the a queue on the local computer.
        MessageQueue myQueue = new MessageQueue(QueueName);

        // Set the formatter to indicate body contains an Order.
        myQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(Queue.Order) });

        try
        {
            // Receive and format the message. 
            Message myMessage = myQueue.Receive();
            ///
    }

我还尝试创建格式为MessageQueue的{​​{1}},但收到了MessageQueueException。

1 个答案:

答案 0 :(得分:0)

如果您转到“计算机管理”并查看“服务和应用程序”> “消息队列”> “私人队列”你看到你的队列命名为“Q1”吗?如果是的话,里面有消息吗?您可能需要调整队列中的属性(右键单击>属性>安全性)。如果您处于开发环境中,则可以从Everyone完全控制开始。一旦你工作,尝试找出最小的权限集。您可能还希望从计算机管理mmc而不是代码中创建队列。