У меня есть самообслуживаемая служба WCF (выполняется внутри службы Windows). Эта служба прослушивает сообщения в MSMQ. Служба PerCall и Transactional работает в Windows 2008 R2, .NET 4.0, MSMQ 5.0.WCF Net.Msmq Service изредка ошибки
Раз в две недели служба прекращает обработку сообщений. Служба Windows остается запущенной, но сам хост WCF останавливается. Разломы ServiceHost со следующим исключением:
Отметка: 3/21/2015 5:37:06 PM Сообщение: HandlingInstanceID: a26ffd8b-d3b4-4b89-9055-4c376d586268 Исключение типа «system.serviceModel .MsmqException 'произошел и был пойман. ------------------------------------------------- -------------------------------- 03/21/2015 13:37:06 Тип: System.ServiceModel.MsmqException, System.ServiceModel, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 Сообщение: Произошла ошибка, когда принимает сообщение из очереди: Операция транзакции последовательность неверна. (-1072824239, 0xc00e0051). Убедитесь, что установлен и запущен MSMQ . Убедитесь, что очередь доступна для приема . Источник: System.ServiceModel Помощь ссылка: ErrorCode: -1072824239 данных: System.Collections.ListDictionaryInternal TargetSite: Boolean TryReceive (System.TimeSpan, System.ServiceModel.Channels.Message ByRef) dynatrace_invocationCount : 0 Трассировка стека: на системе. ServiceModel.Channels.MsmqInputChannelBase.TryReceive (TimeSpan тайм-аут, сообщение & сообщение) на System.ServiceModel.Dispatcher.InputChannelBinder.TryReceive (TimeSpan тайм-аут, RequestContext & RequestContext) в System.ServiceModel.Dispatcher.ErrorHandlingReceiver.TryReceive (TimeSpan timeout, RequestContext & requestContext)
Поиск конкретного исключения («Неверная последовательность транзакций») не дает много информации. И большинство предложений о том, как исправить неисправные службы, - это перезапустить servicehost в случае сбоя.
Я могу это сделать, но я надеюсь, что есть известная причина, которая может быть исправлена для этого исключения и/или есть ли более чистый способ ее обработки.