2008-09-19 87 views
1

我需要在遠程機器上創建一個PRIVATE消息隊列,並且我已經解決了這個問題,我無法以直接的方式在.NET Framework中執行此操作。我可以在遠程機器上創建一個公共消息隊列,但不是私有的。我可以在本地創建一個消息隊列(公共或私有)。您可以使用WMI創建MSMQ消息隊列(PRIVATE隊列)嗎?

我想知道是否有人知道如何通過WMI訪問MSMQ。

編輯:我沒有看到使用MSMQ提供程序做任何事情。可能會變得棘手,並使用PSExec登錄到遠程服務器並執行一些代碼。

回答

1

是的,隊列創建在.NET中很簡單,但是您不能在遠程計算機上以這種方式創建專用隊列。 我一直在考慮將隊列創建添加到MSMQ WMI提供程序一段時間...如果您需要它爲一個真正的產品/客戶,您可以聯繫我,我會考慮優先考慮此功能。 一切順利, 約爾嫩

+0

嗯...我們希望能夠在我工作的地方。這將有助於我們的自動化部署過程。 – ferventcoder 2008-11-24 17:10:09

0

一篇博客文章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

希望這有助於。

+0

我看到了這一個。我不知道這是否意味着供應商必須安裝在遠程機器上。 – ferventcoder 2008-09-20 15:26:00

+0

提供程序實際上並未提供在任何地方安裝專用隊列的方法,而不是在遠程服務器上安裝專用隊列。 – ferventcoder 2008-09-26 03:14:50

0

WMI無法做到開箱即用。以前的答案有一些obsucre WMI提供程序,但它似乎甚至不支持隊列創建。

這在.NET中很簡單!我不會像PSExec那麼遠。 MessageQueue.Create

+0

對不起。所有文檔和後續集成測試都證明您不能使用它來遠程創建PRIVATE消息隊列。 – ferventcoder 2008-10-03 05:21:00

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

複製在文本編輯器的代碼,將文件保存爲.vb S和執行。

0

我也想創建遠程專用隊列,但由於.NET不支持它,我們決定只使用遠程公共隊列。如果我們根據需要在隊列上設置發送和接收權限,這應該沒問題。

解決問題的一個想法是編寫自己的Windows服務或Web服務,該服務或Web服務在隊列需要駐留的同一臺機器上運行。您可以通過套接字或通過http遠程調用此服務,並且您本地運行的代碼可以創建專用隊列的本地。

如果您使用直接名稱格式來引用隊列,您可以可以從遠程專用隊列發送和接收。