2010-07-06 5 views
1

Nous utilisons Nant pour déployer une application et devons créer des files d'attente MSMQ pendant le processus.Définir les autorisations MSMQ à l'aide de VBScript (via Nant)

Nous utilisons Nant/psexec/cscript pour appeler un VBScript afin de créer la file d'attente elle-même, mais nous devons également définir les permissions.

Est-ce que cela peut être fait par programme?

Je suis conscient de Setting permissions on a MSMQ queue in script cependant cette question demande PowerShell ou VBScript et a une réponse acceptée pour PowerShell. Nous ne disposons pas de PowerShell, donc cette question est spécifique à VBScript.

Répondre

0

Selon this post, l'API de script MSMQ ne fournit aucun moyen de définir des autorisations sur les requêtes, de sorte que cette tâche ne peut pas être effectuée à l'aide de VBScript.

je peux suggérer les solutions de contournement suivantes:

  • Utilisez PowerShell, comme illustré dans le poste que vous lié. (PowerShell peut utiliser .NET Framework et, par conséquent, l'API MSMQ .NET fournie par l'assembly System.Messaging.)
  • Créez un utilitaire personnalisé qui définirait les autorisations nécessaires et appelez cet utilitaire dans le cadre de votre processus de déploiement. Pour régler la sécurité de file d'attente, vous pouvez utiliser les fonctions API suivantes:
0

Juste suis tombé sur ceci et a vu qu'il était sans réponse. L'astuce consiste à utiliser le code VB.Net ou C# directement dans nAnt. Vous pouvez le faire avec un include nAnt, avec une tâche de script dans l'espace global; et dans le code, dériver de la classe Task.

Or. De vous pouvez mettre votre bloc de script dans une cible. Je préfère la première méthode, car il est plus facile de réutiliser et de transmettre des paramètres.

Dans les deux cas, ce n'est pas VBScript, il est entièrement compilé code .Net, de sorte que vous pouvez faire à peu près tout.

Dans votre élément de code, importez System.Messaging et créez la file d'attente dans votre remplacement ExecuteTask. N'oubliez pas de donner des permissions de lecture/écriture/peek à. \ Users, ou vous ne pourrez probablement pas utiliser la file d'attente correctement, excepté de l'utilisateur qui a exécuté le script nAnt (qui n'est généralement pas le serveur web ou Windows) service qui lit la file d'attente.)

De plus, puisque vous avez un accès complet à la classe Messaging.MessageQueue, vous pouvez vérifier l'existence et supprimer une file d'attente existante, ou pas!

Questions connexes