我有一个自托管的 WCF 服务(在 Windows 服务内运行)。此服务侦听 MSMQ 上的消息。该服务是 PerCall 和 Transactional,在 Windows 2008 R2、.NET 4.0、MSMQ 5.0 上运行。
每隔几周,该服务将停止处理消息。Windows 服务仍在运行,但 WCF 服务主机本身停止。服务主机出现以下异常:
时间戳:2015 年 3 月 21 日下午 5:37:06 消息:HandlingInstanceID:a26ffd8b-d3b4-4b89-9055-4c376d586268 发生并捕获了“System.ServiceModel.MsmqException”类型的异常。-------------------------------------------------- ------------------------------- 03/21/2015 13:37:06 类型:System.ServiceModel.MsmqException,系统.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 消息:从队列接收消息时出错:事务的操作顺序不正确。(-1072824239,0xc00e0051)。确保 MSMQ 已安装并正在运行。确保队列可用于接收。来源:System.ServiceModel 帮助链接:错误代码:-1072824239 数据:System.Collections.ListDictionaryInternal TargetSite:布尔 TryReceive(System.TimeSpan, System.
搜索特定异常(“事务的操作顺序不正确”)不会产生很多信息。对于如何修复故障服务的大多数建议是在故障事件中重新启动服务主机。
我可以这样做,但我希望有一个已知的可解决此异常的原因和/或是否有更清洁的方法来处理它。