我在Win2008 R2上运行了一个私有的非事务性消息队列。当我执行以下操作时队列中断:
将可恢复的消息放在队列中,如下所示:
Message msg = new Message
{
Body = "hello",
Formatter = new XmlMessageFormatter(),
Label = "Notification",
Recoverable = true,
AppSpecific = 123
};
mq.Send(msg);
请勿检索邮件!
服务未成功重启。事件查看器中记录以下消息:
The Message Queuing service cannot start because a queue is in an
inconsistent state. For more information, see Microsoft Knowledge
Base article 827493 at support.microsoft.com.
注意事项:
有什么想法吗?
答案 0 :(得分:1)
听起来有些东西干扰了存储文件。 可恢复(包括事务性)消息将写入MSMQ \ Storage目录中的文件以及映射到内存中。 在启动时,重新加载文件以重新创建映射到内存中的消息。 由于某种原因,这些存储文件不再起作用。
我会寻找的东西:
干杯
John Breakwell
答案 1 :(得分:1)
尝试将msmq目录移动到其他位置。也许磁盘上存在权限问题。
答案 2 :(得分:0)
将您的机器名称少于15个字符然后它将起作用。这是因为Netbios名称只能是15个字符或更少。这导致MSMQ服务出现问题,因此它最终处于错误中指定的不一致状态。要解决此问题,请卸载MSMQ,将计算机重命名为小于15个字符的内容,然后重新安装MSMQ。这解决了这个问题。