我看到一个非常奇怪的错误,我遇到了困难
追踪。我认为它与我的 Rhino ESB 配置有关,但我不确定
如果 RSB 确实导致了它,所以我想我会问一下
其他任何人在 MSMQ 的任何其他用法中都遇到过这种情况。
我在 Web 应用程序中使用 RSB 作为客户端(ASP.NET,客户端在后台运行)。客户端通过 RSB 的 MSMQ 绑定(bind)与 Windows 服务对话。重新启动服务似乎永远不会对 MSMQ 产生影响,手动重新启动 IIS 也不会。但是,每当我实际重新启动计算机本身时,MSMQ 总是拒绝启动备份,声称“队列处于不一致状态”。尝试手动启动 MSMQ 会导致相同的错误,从而有效地使 MSMQ 安装完全无用。解决它的唯一方法是实际删除然后重新安装 MSMQ。
我通过全能的 Google 找到的唯一信息是对 MSMQ 2.0 中问题的引用(此问题发生在 MSMQ 4.0 中)。我已经验证在服务和网站中都在关闭时在总线上调用 Dispose。
有谁知道为什么会发生这种情况?谢谢!
最佳答案
我在 Window 2008 Server(虚拟机)上遇到了同样的问题。虽然环境与犀牛工具无关。
事件日志中的错误:
“消息队列服务无法启动,因为队列处于不一致的状态。有关详细信息,请参阅 support.microsoft.com 上的 Microsoft 知识库文章 827493。”
正如罗伊指出的那样,这种情况每 2-3 天就会发生一次。每次我们都会按照以下步骤进行恢复——而不是重新安装 MSMQ。
1) 停止所有使用 MSMQ 的应用程序和服务。
2) 从任务管理器中杀死 mqsvc.exe
3) 转到 C:\Windows\System32\msmq\storage 并删除所有 .mq 文件
4)启动MSMQ服务
4) 启动您的应用程序
关于asp.net - MSMQ 重启后状态不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2586302/