11
votes

Ajouter par programme des files d'attente privées dans MSMQ

J'ai une liste de plus de 20 files d'attente qui doivent être ajoutées en tant que file d'attente privée dans MSMQ.

Y a-t-il un moyen de le faire en utilisant

  1. ligne de commande

  2. C # Programmation

    S'il y a un moyen de faire à l'aide d'une sorte de script ou de programmation .NET, je pouvais l'ajouter sans entraver manuellement et causer des fautes de frappe.

    S'il vous plaît laissez-moi savoir.

    merci


0 commentaires

3 Réponses :


19
votes
using System.Messaging;

//...

void CreateQueue(string qname) {
   if (!MessageQueue.Exists(qname)) MessageQueue.Create(qname);
}
You can only create private queues on your local computer. For more information see: Creating Queues

7 commentaires

Richard, savez-vous comment définir les autorisations de manière programmée par C #?


Utilisez l'AccessControllist pour configurer les autorisations, puis "Theee.SetPersmissions ()". Notez que MessageQueue.create retournera la file d'attente.


J'ai trouvé cet article utile en ce qui concerne AccessControllist Serializer.blogspot.com/2005 / 12 / ...


Bonjour, vous pouvez créer des files d'attente publiques.


Je n'approuverais jamais la modification de @GregoryCurie. Il devrait juste être à l'aide du système.MESSAGER . J'ai changé la modification. Je ne fais que en utilisant ... = ... quand j'ai des affrontements de nom.


@Richard Schneider tout bon. L'important est que l'assemblage est mentionné.


@GregroyCurrie, je suis sur SO depuis quelques années maintenant et sa pratique pas standard aux assemblées mention qui peuvent être prises en charge de l'OP. Cependant, je pense que pour les débutants une bonne idée. Peut-être que vous devriez mentionner aux dieux supérieurs sur Meta?



2
votes

Pour la ligne de commande, vous pouvez créer un fichier .vbs avec le contenu suivant:

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 commentaires

0
votes

Un peu en retard sur cela, mais je n'ai commencé que de travailler sur eux maintenant.

Pour ajouter à la réponse de Richard, vous pouvez créer des files d'attente publiques. Vous avez besoin du nom d'hôte et de l'accès administrateur à cette machine. xxx


0 commentaires