如何从本地 Win7 计算机上的专用队列获取 MSMQ 消息计数?
我正在尝试从本地 Win7 Enterprise 计算机上的专用队列获取 MSMQ 消息的计数。我可以毫无问题地从远程计算机获取计数,并且代码可以在 Win2008 Server R2 上运行。我使用的是 C# VS 2008。
代码示例:
int result = MQMgmtGetInfo(cname, "queue=DIRECT=OS:" + qname, ref props);
其中 cname
是带有专用队列的计算机名称,MyLocalComputer
和qname
是私有队列的路径引用,MyLocalComputer\\private$\\QueueName
当我从包含私有队列的 Win7 计算机调用此代码时,我得到一个 -1072824319
返回值。队列中有消息。
如果我从 WinXP 计算机调用此代码来获取 Win7 队列的计数,我会得到正确的计数。我还可以从 WinXP 计算机调用代码,从同一台 WinXP 计算机上的本地专用队列获取计数并获得正确的计数。
在Win7上访问本地私有队列有什么不同吗?由于我可以远程访问队列,我不认为这是权限问题,但我可能是错的。
I am trying to get a count of MSMQ messages from a private queue on a local Win7 Enterprise machine. I can get the count from a remote machine without problem and the code works on Win2008 Server R2. I am using C# VS 2008.
Code sample:
int result = MQMgmtGetInfo(cname, "queue=DIRECT=OS:" + qname, ref props);
where cname
is the machine name with private queue, MyLocalComputer
, andqname
is the path reference to the private queue, MyLocalComputer\\private$\\QueueName
When I call this code from the Win7 computer containing the private queue I get a -1072824319
return value. There are messages in the queue.
If I call this code from a WinXP computer to get counts on the Win7 queue, I get correct counts. I can also call the code from a WinXP computer to get counts from a local private queue on the same WinXP machine and get correct counts.
Is there something different about accessing local private queues on Win7? Since I can access the queue remotely I wouldn't think it is a permissions issue, but I may be wrong.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
听起来您正在使用 MSMQ 3.0 API。 Windows 7 使用 MSMQ 4.0。
在 .NET 引用窗口中查找 System.Messaging(版本 4.0.0.0)并添加到您的项目中。
看一下这个链接: http://www.codeproject.com/KB/cs/ mgpmyqueue.aspx
[] 的
Renan
Sounds like you are using the MSMQ 3.0 API. Windows 7 uses MSMQ 4.0.
In the .NET references window look for System.Messaging (version 4.0.0.0) and add to your project.
Take a look in this link: http://www.codeproject.com/KB/cs/mgpmyqueue.aspx
[]'s
Renan
-1072824319 = 0xC00E0001,这是一般 MSMQ 错误。
尝试使用句号代替机器名称。
这将告诉 MSMQ 使用“本地主机”。
如果有效,则机器解析其自身名称时可能存在问题。
干杯
约翰·布瑞克威尔
-1072824319 = 0xC00E0001 which is a generic MSMQ error.
Try using a full stop instead of the machine name.
That will tell MSMQ to use "local host".
If that works then there may be a problem with the machine resolving it's own name.
Cheers
John Breakwell