Программно добавлять частные очереди в MSMQ
У меня есть список из более чем 20 очередей, которые нужно добавить как приватную очередь в MSMQ.
Есть ли способ сделать это, используя
-
Командная строка
-
Программирование на С#
Если есть способ сделать что-то вроде программирования script или .net, я мог бы добавить его без ввода его вручную и создания опечаток.
Пожалуйста, дайте мне знать.
спасибо
Ответы
Ответ 1
using System.Messaging;
//...
void CreateQueue(string qname) {
if (!MessageQueue.Exists(qname)) MessageQueue.Create(qname);
}
Вы можете создавать частные очереди только на локальном компьютере. Для получения дополнительной информации см. Создание очередей
Ответ 2
В командной строке вы можете создать файл .vbs со следующим содержимым:
Option Explicit
Dim objInfo
Dim objQue
Dim objMsg
Dim strFormatName ' Destination
strFormatName = "direct=os:.\private$\test"
Set objInfo = CreateObject("MSMQ.MSMQQueueInfo")
Set objMsg = CreateObject("MSMQ.MSMQMessage")
objMsg.Label = "my message"
objMsg.Body = "This is a sample message."
objInfo.FormatName = strFormatName
set objQue = objInfo.Open( 2, 0 )
' Send Message
objMsg.Send objQue
' Close Destination
objQue.Close
Set objMsg = Nothing
Set objInfo = Nothing
msgbox "Done..."
Ответ 3
Немного поздно, но я начал работать над ними сейчас.
Чтобы добавить к ответу Ричарда, вы можете создавать публичные очереди.
вам нужно имя хоста и доступ администратора к этой машине.
public static MessageQueue CreatePrivate(string name) {
string path = string.Format(@".\private$\{0}", name);
if (!MessageQueue.Exists(path)) {
MessageQueue.Create(path);
return new MessageQueue(path);
}
return new MessageQueue(path);
}
public static MessageQueue CreatePublic(string hostname,string queuename) {
string path = string.Format(@"{0}\{1}", hostname,queuename);
if (!MessageQueue.Exists(path)) {
MessageQueue.Create(path);
return new MessageQueue(path);
}
return new MessageQueue(path);
}
}