【问题标题】:How to access a private MSMQ queue created by NETWORK SERVICE account?如何访问由 NETWORK SERVICE 帐户创建的私有 MSMQ 队列?
【发布时间】:2011-08-15 07:35:56
【问题描述】:

我的应用程序由两部分组成:一个 Web 服务,它将队列发送到一个私有 MSMQ 队列,一个 Windows 服务,它接收队列并将它们插入数据库。在我的开发机器上,一切都很好,但是当我将它们部署到服务器时,出现了权限问题:

  • Web 服务,在 IIS 中运行,使用 NETWORK SERVICE 帐户创建队列。
  • 服务本身,以管理员身份运行,然后无法访问队列。

我尝试为管理员帐户添加权限,但失败并出现错误“访问被拒绝”。我什至无法删除这些队列。

我该如何解决这个问题? 非常感谢

【问题讨论】:

    标签: .net permissions msmq


    【解决方案1】:

    当 web 服务创建队列时,它应该确保它具有适当的访问权限。如果您使用.NET,您可以在队列创建后使用MessageQueue.SetPermissions 方法修改队列的权限。

    这段 C# 代码将创建一个新的消息队列并让本地管理员组完全控制它:

    var messageQueue = MessageQueue.Create(path, true);
    messageQueue.SetPermissions(
      "Administrators",
      MessageQueueAccessRights.FullControl
    );
    

    【讨论】:

      【解决方案2】:

      同时添加网络服务和管理员权限。在创建队列时。

      如果您想删除队列,请按照此步骤操作...

      https://stackoverflow.com/a/11430249/672891

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-16
        • 2011-03-20
        • 2011-05-07
        • 2014-12-01
        • 2010-10-21
        • 2014-07-22
        • 2011-03-24
        • 2011-09-23
        相关资源
        最近更新 更多