我的机器位于域 D1 中,并且域 D2 中的远程服务器中有公共 MSMQ。我通过 vpn 连接到 D2,即我可以在 D2 中 RDP 机器并访问 MSMQ。
我想要的是访问(知道消息计数)的 MSMQ 而不 RDPing 系统。所以我为此构建了一个应用程序。我使用 Impersonation 来模拟 D2 的用户(即使用 D2 的凭据)但问题是我无法访问“公共”MSMQ(使用 Messagequeue.GetPublicQueue() )并且抛出异常消息“工作组安装计算机不支持操作。” 但是当我使用 MessageQueue.GetPrivateQueue() 它返回一个私有队列的集合。
我尝试将 MSMQManager 用于 messageCount
Path = @"Direct:OS:machine\publicqueue";
FormatName=null;
new MSMQManager.inIt(machineName, path , FormatName);
这也会引发异常,即队列不存在或未打开。但我可以检查队列是否工作正常。