asp.net - MSMQ 重启后状态不一致

标签 asp.net msmq rhino-tools

我看到一个非常奇怪的错误,我遇到了困难
追踪。我认为它与我的 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/

相关文章:

.net - 如何在 nservicebus MSMQ 中达到最大重试次数时发送电子邮件

security - 有人用犀牛安全吗?

c# - jQUery ajax 调用 asp.net webforms 返回 html 页面而不是调用 url 中的指定方法

c# - ASP.NET Ajax BeginForm 重定向?

c# - 在C#中创建DIV并向其添加控件

asp.net - 如何在 MVC2 应用程序上更改 HTTPS 的 HTTP 协议(protocol)?

c# - 客户端不读取远程 MSMQ 队列,但可以发送到远程队列

c# - 如何以编程方式知道机器上是否启用了消息队列?