问题
I have an exsiting application that works fine on a windows 2003 server. I having been moving it to windows 2008r2 and when the application trys to access the queue it gets the below error? The Indentity user of my app pool has full control of my message queue. Does anyone have any ideas on how to fix this. I believe this to be server config issue.
[MessageQueueException (0x80004005): Access to Message Queuing system is denied.]
System.Messaging.MQCacheableInfo.get_ReadHandle() +221
System.Messaging.MessageEnumerator.get_Handle() +70
System.Messaging.MessageEnumerator.MoveNext(TimeSpan timeout) +93
System.Messaging.MessageQueue.GetAllMessages() +58
NServiceBus.Unicast.Subscriptions.Msmq.MsmqSubscriptionStorage.Init(IList`1 messageTypes) +124
NServiceBus.Unicast.UnicastBus.Start(Action`1[] startupActions) +674
Connector.Service.InitBus() +201
Connector.OutgoingService..cctor() +9
回答1:
I just had the same experience when moving from Win 2003 to Win 2008 R2 - and it turned out that 2008 R2 create queues with lowercase letters when I use the .NET APIs to create the queue. Later when the application tries to access the queue it cannot access them (giving the error you state) using uppercase letter. Using lowercase solves the problem.
/AZ
回答2:
I also got the following:
System.Messaging.MessageQueueException (0x80004005): Access to Message Queuing system is denied. Being generated from: NServiceBus.Utils.MsmqUtilities.
Giving 'Everyone' permissions on the 'error' queue solved the problem.
回答3:
I also use 2008 R2, Yes, the actually queue name being created is lower-cased, but in my code, access it using the Upper case works well.
回答4:
Also added permission to 'Anonymous Logon' and it worked.
来源:https://stackoverflow.com/questions/6511865/messagequeueexception-0x80004005-access-to-message-queuing-system-is-denied