CommunicationException с 'не распознанная последовательность' обмениваются сообщениями в WCF

Я получаю CommunicationException при использовании сервиса WCF. Сообщение:

Удаленная конечная точка больше не распознает эту последовательность. Это происходит, скорее всего, из-за аварийного прекращения работы на удаленной конечной точке. Значение wsrm:Identifier не является известным идентификатором Последовательности. Надежная сессия была дана сбой.

Исключение выдается через мгновение после того, как метод контракта назвали. Перед называнием метода контракта Открыто состояние каналов. Я восстанавливаю свой сервисный клиент после ловли этого исключения, и в течение некоторого времени это хорошо работает. Но затем эта ошибка происходит снова. Кажется, что некоторый тайм-аут превышен, но я не могу понять который точно.

Я использую wsHttpBinding с включенным reliableSession. InactivityTimeout установлен на полчаса, и я уверен, что он не превышен, потому что исключение выдается ранее.

9
задан brain_pusher 16 April 2010 в 11:45
поделиться

2 ответа

Я решил проблему. Причина - RecieveTimeout на стороне сервера. Он был установлен на 1 минуту, поэтому после отсутствия запросов в течение 1 минуты сервер использовал для закрытия канала, и когда клиент пытался вызвать контракт, канал уже был сброшен из-за тайм-аута.

Я нашел решение после прочтения этой статьи:

http://msdn.microsoft.com/en-us/library/system.servicemodel.reliablesession.inactivitytimeout.aspx

7
ответ дан 4 December 2019 в 20:22
поделиться

Я видел, как это происходило, когда пул приложений перезагружался.

Посмотрите самый последний раздел этого блога о повторном использовании сервисов.

0
ответ дан 4 December 2019 в 20:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: