来自远程服务器的MessageEnumerator.MoveNext()错误 - C#

时间:2017-09-27 14:20:28

标签: msmq

我创建了一个控制台应用程序,我根据特定条件(标签/正文/优先级)实现了MSMQ功能的搜索消息。

MessageQueue msgQ = new MessageQueue("FormatName:Direct=OS:(MachineName A)\private$\TestQueue")
msgQ.Label = "Label test"  // Simlarly i set search criteria

MessageEnumerator msgEnumtr = msgQ.GetMessageEnumerator2(); // Search Queue

While(msgEnumtr.MoveNext(timeout)) // This line works fine in MSMQ server, not working remote server.
{
  Message currentMsg= msgEnumtr.Current;
}

这里" TestQueue"是"机器A"中设置的专用队列。我已为此队列授予匿名登录权限。

我正在运行我的控制台应用程序来自"机器B"连接在同一个局域网中。 MSMQ组件也在此计算机上启用/安装。当我在这里运行我的控制台exe时,得到"对象引用未设置为实例"错误在" while(msgEnumtr.MoveNext(timeout))"线。有时我得到以下错误"游标当前没有指向Message实例"。

但是当我从机器A"运行这个exe时,它的工作正常&按预期搜索。

(注意:queue.Send(Msg) - (将消息放到队列中)在两台机器上都正常工作,只发出搜索功能)

任何人都可以帮我解决这个问题。感谢。

0 个答案:

没有答案