Я получаю CommunicationException при использовании сервиса WCF. Сообщение:
Удаленная конечная точка больше не распознает эту последовательность. Это происходит, скорее всего, из-за аварийного прекращения работы на удаленной конечной точке. Значение wsrm:Identifier не является известным идентификатором Последовательности. Надежная сессия была дана сбой.
Исключение выдается через мгновение после того, как метод контракта назвали. Перед называнием метода контракта Открыто состояние каналов. Я восстанавливаю свой сервисный клиент после ловли этого исключения, и в течение некоторого времени это хорошо работает. Но затем эта ошибка происходит снова. Кажется, что некоторый тайм-аут превышен, но я не могу понять который точно.
Я использую wsHttpBinding с включенным reliableSession. InactivityTimeout установлен на полчаса, и я уверен, что он не превышен, потому что исключение выдается ранее.
Я решил проблему. Причина - RecieveTimeout на стороне сервера. Он был установлен на 1 минуту, поэтому после отсутствия запросов в течение 1 минуты сервер использовал для закрытия канала, и когда клиент пытался вызвать контракт, канал уже был сброшен из-за тайм-аута.
Я нашел решение после прочтения этой статьи:
http://msdn.microsoft.com/en-us/library/system.servicemodel.reliablesession.inactivitytimeout.aspx
Я видел, как это происходило, когда пул приложений перезагружался.
Посмотрите самый последний раздел этого блога о повторном использовании сервисов.