MSMQ:从队列接收时会导致“资源不足以执行操作”的错误是什么?
当队列只保留2,000条消息时,每条消息的大小约为5KB。
答案 0 :(得分:35)
我有相同的错误消息,解决方案很简单。
有许多消息存在于各种队列中,并且已达到存储限制。我去了:
服务器管理器 - >功能强>
右键点击消息队列
所选属性
在“常规”标签中取消勾选存储限制
我被告知使用 MSMQ 的服务将重新启动,然后错误就消失了。
答案 1 :(得分:29)
来自John Breakwell的博客有十一种可能性:
http://blogs.msdn.com/johnbreakwell/archive/2006/09/18/761035.aspx
我会检查队列的版本以及错误时打开的队列的连接数(往返)。任何“可能有”都会导致您的错误。
答案 2 :(得分:16)
我的传出队列中有太多失败的消息。 检查系统队列 - >死信的消息。我清除了这个队列,它再次正常工作。
答案 3 :(得分:1)
我遇到了同样的错误,在检查了上面提到的内容后,原来是引起问题的计算机名称!它超过了15个字符,我将其更改为较短的字符后,问题就解决了。
答案 4 :(得分:1)
如果启用了日记功能,则将存储从队列中删除的所有邮件的副本,因此也可能达到MSMQ日记限制。短期修复可能是清除队列的日志,而长期而言-禁用日志记录。
答案 5 :(得分:0)
对我来说,问题不是托管队列的计算机。是将消息发送到队列的机器。我注意到源计算机上的“传出队列”显示了大量消息,这导致我进入MSMQ Messages Are Stuck In The Outgoing Queue。对我来说,在源计算机上重新安装MSMQ可以解决此问题。