如何从本地 Win7 计算机上的专用队列获取 MSMQ 消息计数?

发布于 2024-12-09 01:38:13 字数 640 浏览 2 评论 0原文

我正在尝试从本地 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, and
qname 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

祁梦 2024-12-16 01:38:13

听起来您正在使用 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

自我难过 2024-12-16 01:38:13

-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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文