我创建了一个控制台应用程序,我根据特定条件(标签/正文/优先级)实现了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) - (将消息放到队列中)在两台机器上都正常工作,只发出搜索功能)
任何人都可以帮我解决这个问题。感谢。