繁体   English   中英

MSMQ发送消息到远程队列

[英]MSMQ Send message to Remote Queue

我正在尝试将消息发送到远程队列。 我的进程没有失败,但我仍然没有看到远程队列上的消息? 如果它无法处理消息,我会认为它会失败?

我注意到在我的本地计算机上远程队列列在Outgoing队列中,但是也没有看到消息。 这里非常无知,所有的例子都表明我正在做的事情(或者我认为)是正确的。

代码(简单测试):

    using (var transaction = new TransactionScope())
    {
        using (var queue = new MessageQueue(@"FormatName:DIRECT=OS:mymachine\MyQueueQueue"))
        {
            XDocument xdoc = XDocument.Parse("<root/>");

                 var message = new Message(xdoc.ToString());
                queue.Send(message, MessageQueueTransactionType.Single);
        }

        transaction.Complete();
    }

    Console.Read();
}

我做错了什么? 奇怪......没有错误,但在任何地方都看不到消息。 写入工作到我的本地队列。

您在本地计算机上看到的队列是MSMQ如何将消息从您的计算机传输到远程计算机。 所以只要没有消息就不要担心。 如果其上有消息,则表明远程队列由于某种原因不可用。

可能的权限可能是一个问题。 检查远程队列上的发送权限。 如果呼叫是跨域调用,则需要将ANONYMOUS LOGON添加到您的权限中。

还尝试启用MSMQ事件日志(如果您运行的是服务器2008或更高版本)。

UPDATE

看起来您正在调用公共队列地址。 你应该使用私人队列。 除了PRIVATE $指令外,地址相同:

FORMATNAME:DIRECT = OS:mymachine上\\ PRIVATE $ \\ MyQueueQueue

另外:你的队列名称myQueueQueue就像你的队列地址一样吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM