我的应用程序由两部分组成:一个Web服务,它将队列发送到一个私有MSMQ队列;一个Windows服务,它接受队列并将它们插入数据库。在我的开发机器中,一切都很好,但是当我将它们部署到服务器时,一个权限问题就出现了:
我尝试为管理员帐户添加权限,但因“访问被拒绝”错误而失败。我甚至无法删除这些队列。
我该如何解决这个问题? 非常感谢你
答案 0 :(得分:5)
当webservice创建队列时,应确保它具有适当的访问权限。如果您使用的是.NET,则可以使用MessageQueue.SetPermissions方法在创建队列后修改队列的权限。
此C#代码将创建一个新的消息队列,并让本地Administrators组完全控制它:
var messageQueue = MessageQueue.Create(path, true);
messageQueue.SetPermissions(
"Administrators",
MessageQueueAccessRights.FullControl
);
答案 1 :(得分:1)