我需要在远程计算机上创建一个PRIVATE消息队列,并且我已经解决了事实,即我无法以直接的方式使用.NET Framework执行此操作。我可以在远程计算机上创建公共消息队列,但不能创建私有队列。我可以在本地创建一个消息队列(公共或私有)。

我想知道是否有人知道如何通过WMI访问MSMQ。

编辑:使用MSMQ Provider我没有看到任何操作。可能必须变得棘手并使用PSExec登录远程服务器并执行一些代码。

有帮助吗?

解决方案

是的,.NET中的队列创建很简单,但是您不能以这种方式在远程计算机上创建专用队列。 我一直在考虑将队列创建添加到MSMQ WMI提供程序一段时间......如果您需要真正的产品/客户,您可以联系我,我会考虑优先考虑此功能。 祝一切顺利, Yoel Arnon

其他提示

有关MSMQ和WMI的博客文章如下: http://msmq.spaces.live.com/blog/cns !393534E869CE55B7!210.entry

它说这里有一个提供商: http://www.msmq.biz/Blog/MSMQWmiSetup.msi

它还说这里有一个参考: http://www.msmq.biz/Blog/MSMQ%20WMI% 20Provider%20Objects.doc

希望这有帮助。

WMI无法开箱即用。上一个答案有一些障碍WMI提供者,但它似乎甚至不支持创建队列。

然而,这在.NET中非常简单!我不会像PSExec那样走得那么远。 MessageQueue.Create

我也想创建远程私有队列,但由于.NET不支持它,我们决定只使用远程公共队列。如果我们根据需要在队列上设置发送和接收权限,这应该没问题。

解决方法的一个想法是编写自己的Windows服务或在队列需要驻留的同一台机器上运行的Web服务。您可以通过套接字或http远程调用此服务,而本地运行的代码可以创建本地专用队列。

如果使用直接名称格式引用队列,则可以从远程专用队列发送和接收。

set qinfo = CreateObject("MSMQ.MSMQQueueInfo")
qinfo.PathName = ".\Private$\TestQueue"
qinfo.Label = ".\Private$\TestQueue"
qinfo.Journal = "1"
qinfo.Create

在文本编辑器中复制代码,将文件保存为 .vb 并执行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top