MessageQueueException(0x80004005):拒绝访问消息队列系统

时间:2011-06-28 19:12:14

标签: msmq nservicebus

我有一个在Windows 2003服务器上正常运行的现有应用程序。我一直在将它移动到Windows 2008r2,当应用程序试图访问队列时,它得到以下错误?我的应用程序池的Indentity用户可以完全控制我的消息队列。有没有人对如何解决这个问题有任何想法。我相信这是服务器配置问题。

[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

4 个答案:

答案 0 :(得分:4)

从Win 2003迁移到Win 2008 R2时,我获得了相同的体验 - 事实证明,当我使用.NET API创建队列时,2008 R2会使用小写字母创建队列。稍后当应用程序尝试访问队列时,它无法使用大写字母访问它们(给出您说明的错误)。使用小写可以解决问题。

/ AZ

答案 1 :(得分:2)

我还得到以下内容:

System.Messaging.MessageQueueException(0x80004005):拒绝访问消息队列系统。从以下生成:NServiceBus.Utils.MsmqUtilities。

在'错误'队列上给予'每个人'权限解决了这个问题。

答案 2 :(得分:0)

我也使用2008 R2,是的,正在创建的实际队列名称是低级的,但在我的代码中,使用大写字母访问它很有效。

答案 3 :(得分:0)

还添加了匿名登录'它起作用了。

相关问题