Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问远程MSMQ计数_C#_Msmq - Fatal编程技术网

C# 访问远程MSMQ计数

C# 访问远程MSMQ计数,c#,msmq,C#,Msmq,我的机器位于域D1中,并且在域D2中的远程服务器中存在公共MSMQ。我通过vpn连接到D2,即我可以RDP D2中的机器并访问MSMQ 我想要的是访问(知道消息计数)MSMQ,而无需对系统进行RDPing。因此,我为此构建了一个应用程序。我使用模拟来模拟D2的用户(即使用D2的凭据),但问题是我无法访问“Public”MSMQ(使用的Messagequeue.GetPublicQueue()),并引发异常,其中包含消息“工作组安装计算机不支持该操作”。但当我使用Messagequeue.GetP

我的机器位于域D1中,并且在域D2中的远程服务器中存在公共MSMQ。我通过vpn连接到D2,即我可以RDP D2中的机器并访问MSMQ

我想要的是访问(知道消息计数)MSMQ,而无需对系统进行RDPing。因此,我为此构建了一个应用程序。我使用模拟来模拟D2的用户(即使用D2的凭据),但问题是我无法访问“Public”MSMQ(使用的Messagequeue.GetPublicQueue()),并引发异常,其中包含消息“工作组安装计算机不支持该操作”。但当我使用Messagequeue.GetPrivateQueue()时它返回了一个私有队列的集合

我尝试将MSMQManager用于messageCount
Path=@“Direct:OS:machine\publicqueue”;
FormatName=null;
新的MSMQManager.inIt(machineName、path、FormatName);

如果队列不存在或未打开,这也会引发异常。但我可以检查一下队列是否正常工作。

您是否愿意做一点编程?如果不是,您是否愿意使用PowerShell

无论哪种方式-我都会检查,因为它似乎包含了您正在寻找的答案

祝你好运,希望这对你有所帮助
  • 您的问题可能是您正在远程工作
  • 方法
    GetPublicQueuesByMachine()
    确实是无法通过远程访问获得的

    您可以在MSDN文档中的功能矩阵中看到:

    下表显示了此方法在各种工作组模式下是否可用

     Workgroup mode                         Available
     --------------                         ---------
     Local computer                         No
     Local computer and direct format name  No
     Remote computer                        No
     Remote computer and direct format name No
    
    • 还要检查队列的访问权限
    如果我在前面的建议中错了,那么它可能很简单,就是尝试网络中特定用户的访问权限

    MSDN条款规定:

    公共队列的默认安全访问权限授予每个人 将消息发送到公共队列必须指定特定权限 已授予读访问权限。

    • 至于实际的邮件计数,John Opincar在这里写了一篇关于邮件计数的好文章: