我们有一个名为。\ 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相同的用户执行。
答案 0 :(得分:0)
我通过合并以下代码示例来解决此问题,以便在分配权限之前设置所有者:https://github.com/gavacho/System.Messaging.MessageQueue.SetOwner/blob/master/System.Messaging.MessageQueue.SetOwner.cs