【发布时间】:2017-05-29 08:51:45
【问题描述】:
我们的 MSMQ 6.3.9600 在 Win Server 2012 R2 Standard 上。 安装了消息队列、消息队列触发器和目录服务集成。消息队列和消息队列触发器服务都在“网络服务”下运行。
我们创建了一个非事务性公共队列(比如称为测试)。在测试 > 属性 - 安全中,我给了 NETWORK SERVICE “完全控制”,包括接收消息、Peek 消息等。
测试队列有一个触发器: -1 规则称为 TestRule -队列路径名称:myServer\Test -启用:是 -序列化:否 -消息处理类型:消息偷看
测试规则: - 规则条件:消息标签不包含“@@@@@@@@@@@@@@@@@” - 规则操作:调用独立可执行文件 (EXE) C:\myFolder\myProgram.exe。 这个 VB.NET 程序是用 .NET Framework 4.0 编写的。 参数:调用参数:消息 ID(作为变体)
在 myProgram.exe 属性 > 安全性的 Windows 资源管理器中,我还为程序及其文件夹提供了 NETWORK SERVICE “完全控制”。
当我向测试队列发送消息(并且我在测试队列中看到这些消息)时,我在任务管理器中看到了 myProgram.exe,但它没有被执行。 Message标签肯定不包含“@@@@@@@@@@@@@@@@”,所以应该满足触发条件。 在 myProgram.exe Form_Load 中,我立即写入日志文件,但没有看到该日志文件已创建。我也尝试向事件查看器写入消息,但在事件查看器中看不到这些消息。
我可以手动运行 myProgram.exe(dbl 单击 exe 或从“运行”中运行),它运行良好。
我重新启动了消息队列服务(反过来也启动了消息队列触发器服务),但 myProgram.exe 仍然没有执行。
相同的设置适用于我们的另外 2 台服务器(myProgram.exe 在其他 2 台服务器上被触发和执行),它只是不能在这台服务器上运行。
我还有什么需要检查的吗? 谢谢。
【问题讨论】:
标签: .net triggers message-queue msmq windows-server-2012