1

我们正在使用 Nant 部署应用程序,并且在此过程中需要创建一些 MSMQ 队列。

我们使用 Nant/psexec/cscript 调用 VBScript 来创建队列本身,但我们还需要设置权限。

这可以通过编程方式完成吗?

我知道在脚本中设置 MSMQ 队列的权限,但是该问题要求 PowerShell 或 VBScript,并且已接受 PowerShell 的答案。我们没有可用的 PowerShell,所以这个问题是针对 VBScript 的。

4

2 回答 2

0

根据这篇文章,MSMQ 脚本 API 不提供任何设置查询权限的方法,因此无法使用 VBScript 完成此任务。

我可以建议以下解决方法:

  • 使用 PowerShell,如您链接到的帖子中所示。(PowerShell 可以使用 .NET Framework,因此可以使用程序System.Messaging集提供的 MSMQ .NET API。)
  • 创建一个自定义实用程序来设置必要的权限,并在部署过程中调用此实用程序。要设置队列安全性,您可以使用以下 API 函数:
于 2010-07-08T14:20:00.873 回答
0

刚刚遇到这个,看到它没有答案。这里的诀窍是直接在 nAnt 中使用 VB.Net 或 C# 代码。您可以使用 nAnt 包含来执行此操作,并在全局空间中使用脚本任务;在代码中,派生自 Task 类。

或者。您可以将脚本块放在目标中。我更喜欢前一种方法,因为它更容易重用和传递参数。

无论哪种情况,这都不是 VBScript,它是完全编译的 .Net 代码,因此您几乎可以做任何事情。

在您的代码元素中,导入 System.Messaging,并在您的 ExecuteTask 覆盖中创建队列。不要忘记为 .\Users 授予读/写/查看权限,否则您可能无法正确使用队列,除非是运行 nAnt 脚本的用户(通常不是 Web 服务器或 Windows正在读取队列的服务。)

此外,由于您拥有对 Messaging.MessageQueue 类的完全访问权限,您可以检查是否存在并删除现有队列!

于 2013-02-19T05:06:51.407 回答