【发布时间】:2015-05-27 01:12:52
【问题描述】:
我有一个自托管的 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, System.ServiceModel,版本=4.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089 消息:发生错误时 从队列接收消息:事务的操作 顺序不正确。 (-1072824239,0xc00e0051)。确保 MSMQ 是 安装并运行。确保队列可以接收 从。来源:System.ServiceModel 帮助链接:错误代码: -1072824239 数据:System.Collections.ListDictionaryInternal TargetSite:布尔 TryReceive(System.TimeSpan, System.ServiceModel.Channels.Message ByRef) dynatrace_invocationCount :0堆栈跟踪:在 System.ServiceModel.Channels.MsmqInputChannelBase.TryReceive(时间跨度 超时,消息和消息)在 System.ServiceModel.Dispatcher.InputChannelBinder.TryReceive(时间跨度 超时,请求上下文和请求上下文)在 System.ServiceModel.Dispatcher.ErrorHandlingReceiver.TryReceive(时间跨度 超时,RequestContext&requestContext)
搜索特定异常(“事务的操作顺序不正确”)不会产生很多信息。对于如何修复故障服务的大多数建议是在故障事件中重新启动服务主机。
我可以这样做,但我希望有一个已知的可解决此异常的原因和/或是否有更简洁的方法来处理它。
【问题讨论】: