MSMQ 触发器 EXE 未执行

MSMQ Trigger EXE is not executing

我们的 MSMQ 6.3.9600 在 Win Server 2012 R2 Standard 上。 安装了消息队列、消息队列触发器和目录服务集成。消息队列和消息队列触发器服务都在 运行ning 下 "Network Service"。

我们创建了一个非事务性 Public 队列(比如称为测试)。在测试 > 属性 - 安全性中,我提供了网络服务 "Full Control",其中包括接收消息、查看消息等

测试队列有一个触发器: -1 名为 TestRule 的规则 -队列路径名称:myServer\Test -启用:是 -连载:无 -消息处理类型:消息偷看

测试规则: -规则条件:消息标签不包含“@@@@@@@@@@@@@@” - 规则操作:调用独立可执行文件 (EXE) C:\myFolder\myProgram.exe。 此 VB.NET 程序是使用 .NET Framework 4.0 编写的。 参数:调用参数:消息 ID(作为变体)

在 Windows Explorer on myProgram.exe 属性 > Security 中,我还为程序及其文件夹提供了 NETWORK SERVICE "Full Control"。

当我向测试队列发送消息时(我在测试队列中看到这些消息),我在任务管理器中看到 myProgram.exe,但它没有执行。 Message标签肯定不包含“@@@@@@@@@@@@@@@”,所以应该满足触发条件。 在 myProgram.exe Form_Load 中,我立即写入一个日志文件,但我没有看到该日志文件已创建。我还尝试向事件查看器写入消息,但我在事件查看器中看不到这些消息。

我可以 运行 myProgram.exe 手动(dbl 单击 exe 或从 "run"),它 运行 没问题。

我重新启动了消息队列服务(同时也启动了消息队列触发器服务),但myProgram.exe仍然没有执行。

同样的设置在我们的另外 2 台服务器上工作(myProgram.exe 在其他 2 台服务器上被触发并执行),只是在这 1 台服务器上不起作用。

还有什么我需要检查的吗? 谢谢。

如果您可以在任务管理器中看到 myProgram.exe,那么触发器已经工作并且应用程序已被执行。问题很可能是您的应用程序没有权限做它想做的任何事情,因为您可以在登录用户的上下文中加载它时使其工作。