我有一个服务器设置,它使用 PHP COM 创建“MSMQ.MSMQQueueInfo”对象,然后因为它的 PathName 设置为“.\private\queue”。
这适用于本地队列(名为“队列”)。
在线研究后,我能够确定是否要将消息排队到 MSMQ 的远程位置,它的 PathName 需要看起来像FormatName:Direct=TCP:[ip]\\private$\\[queuename]
$msgQueueInfo = new COM("MSMQ.MSMQQueueInfo") or die("Couldn't create");
$msgQueueInfo->PathName = "FormatName:Direct=TCP:10.0.0.8\private$\queue";
$msgQueue = new COM("MSMQ.MSMQQueue") or die("Couldn't create");
$msgQueue = $msgQueueInfo->Open(2, 0);
每次我尝试运行上面的代码时,都会收到以下错误消息“来源: MSMQQueueInfo
描述:指定的队列路径名无效。”
如果路径设置为“.\private$\queue”,它会将消息成功排队到本地队列,但为什么它不采用我提供的远程队列路径?我的代码有什么问题吗?我必须启用什么?有什么我想念的吗?