C#MSMQ访问被拒绝

时间:2017-06-27 16:04:58

标签: c# msmq

我们有一个名为。\ publicQueue的公共队列错误。

                    MessageQueue currentQueue = new MessageQueue(queue);
                    AccessControlList accessList = new AccessControlList();
                    Trustee queueOwner = new Trustee(user, Environment.MachineName, TrusteeType.User);
                    MessageQueueAccessControlEntry accessOwner = new MessageQueueAccessControlEntry(queueOwner, rights);
                    accessList.Add(accessOwner);

                    currentQueue.SetPermissions(accessList);

执行代码后,出现以下错误:System.Messaging.MessageQueueException(0x80004005):拒绝访问消息队列系统。

我可以确认队列确实存在。

这里有什么可能错的想法?

我发现一个建议说匿名应用程序池信用可能导致问题,但事实并非如此。应用程序池正在代码中与queueowner相同的用户执行。

1 个答案:

答案 0 :(得分:0)

我通过合并以下代码示例来解决此问题,以便在分配权限之前设置所有者:https://github.com/gavacho/System.Messaging.MessageQueue.SetOwner/blob/master/System.Messaging.MessageQueue.SetOwner.cs