【问题标题】:GetPrivateQueuesByMachine error when being called调用 GetPrivateQueuesByMachine 错误
【发布时间】:2019-02-12 23:04:12
【问题描述】:

我试图从我的 PC 上简单地获取服务器上所有私有队列的列表。

我得到的错误是“访问消息队列系统被拒绝。”

我已授予对(所有人、网络服务和匿名登录)队列的完全访问权限,因为只有 1 个队列....

请参阅下面的附加错误和代码:-

       try
       {
            MessageQueue[] queueList =                
            MessageQueue.GetPrivateQueuesByMachine("xxx.xxx.x.xxx");//Error 
            occurs here

            foreach (MessageQueue queueItem in queueList)
            {
                 Console.WriteLine(queueItem.Path);
            }

             return created;
        }
        catch (MessageQueueException m)
        {
            Console.WriteLine(m.Message + m.MessageQueueErrorCode);
        }
        catch (SystemException s)
        {
            Console.WriteLine(s.Message + s.StackTrace);
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            throw;
        }

【问题讨论】:

    标签: c# message-queue msmq


    【解决方案1】:

    在目标机器的计算机管理器(在您的示例中为“xxx.xxx.x.xxx”)选择“服务和应用程序”,然后选择“消息队列”。右键单击“消息队列”,转到安全选项卡并添加您的帐户以完全控制。这应该让您可以访问该机器上的私有队列

    【讨论】:

    • 是的,Maiur 无法与 MSMQ 服务对话,而不是与队列对话。
    • 已经这样做了,并获得了匿名登录、所有人和网络服务的访问权限...不确定要访问哪个其他帐户...
    • 很高兴添加其他帐户 - 有什么想法吗?
    • @JohnBreakwell - 嗨,约翰,我很高兴根据需要添加其他帐户...我知道这是权限问题...感谢任何进一步的帮助...
    • 所有人和匿名登录都是您有效包含所有帐户所需的一切。如果您按照建议将这些权限添加到服务,而不仅仅是您最初发布的队列,那么问题出在其他地方。
    猜你喜欢
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 2013-09-22
    • 2013-12-02
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多