MSMQ

2011-04-05 40 views
10

özel sıraları programsal olarak özel sıraları ekleyin MSMQ içinde özel sıra olarak eklenmesi gereken 20'den fazla sıra listeniz var.MSMQ

  1. Komut Satırı kullanarak bunu yapmanın bir yolu var mı

  2. C# programlama komut dosyası veya çeşit kullanarak yapmanın bir yolu varsa

.net programlama sonra onu elle girerek yazarak ve yazım hatalarına neden olabilir.

Lütfen bana bildirin.

sayesinde

cevap

18
using System.Messaging; 

//... 

void CreateQueue(string qname) { 
    if (!MessageQueue.Exists(qname)) MessageQueue.Create(qname); 
} 

Yalnızca yerel bilgisayarda özel kuyruklara yol açabilir. Daha fazla bilgi için bkz: Creating Queues

+0

Richard, izinleri programatik olarak C# olarak nasıl ayarlayacağınızı biliyor musunuz? – irvinedotnet

+0

İzinleri ve sonra "queue.SetPermissions()" kurmak için AccessControlList kullanın. MessageQueue.Create sıranın döndüreceğini unutmayın. –

+0

Bu benim için çalıştı .. teşekkürler – irvinedotnet

2

komut satırında, aşağıdaki içeriğe sahip bir .vbs dosyası oluşturabilirsiniz:

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..." 
0

Biraz geç bu konuda, ancak ben ancak şimdi onlara üzerinde çalışmaya başladı.

Richard'ın cevabını eklemek için genel sıralar oluşturabilirsiniz. Ancak, ana makine adına ve bu makineye yönetici erişimine ihtiyacınız var.

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); 
    } 
} 
İlgili konular