Можете ли вы использовать WMI для создания очереди сообщений MSMQ (ЧАСТНАЯ очередь)?

StackOverflow https://stackoverflow.com/questions/102877

  •  01-07-2019
  •  | 
  •  

Вопрос

Мне нужно создать ЧАСТНУЮ очередь сообщений на удаленном компьютере, и я решил, что не могу сделать это с помощью .NET Framework напрямую.Я могу создать общедоступную очередь сообщений на удаленном компьютере, но не ЧАСТНУЮ.Я могу создать очередь сообщений (публичную или частную) локально.

Мне интересно, знает ли кто-нибудь, как получить доступ к MSMQ через WMI.

Редактировать: Я не вижу ничего, что можно было бы сделать с помощью поставщика MSMQ.Возможно, придется пойти на хитрость и использовать PSExec для входа на удаленный сервер и выполнения некоторого кода.

Это было полезно?

Решение

Да, создать очередь в .NET просто, однако вы не сможете таким образом создать частную очередь на удаленном компьютере.Я уже некоторое время подумывал о добавлении создания очередей к провайдеру MSMQ WMI...Если вам это нужно для реального продукта/клиента, вы можете связаться со мной, и я рассмотрю возможность придания этой функции приоритета.Всего наилучшего, Йоэль Арнон

Другие советы

Сообщение в блоге о 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 или веб-службу, которая работает на том же компьютере, где должна находиться очередь.Вы можете вызвать эту службу удаленно через сокет или через http, и ваш локально исполняемый код может создать местный частная очередь.

Если вы используете формат прямого имени для ссылки на очередь, вы может Отправка и получение из удаленной частной очереди.

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

Скопируйте код в текстовый редактор, сохраните файл как .vbs и выполнить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top