Какова цель надежного сеанса WCF? - PullRequest
31 голосов
/ 26 мая 2010

Документация по этой теме плохая. Я использую службы WCF с NetTcpBinding, размещенные в службе Windows. Проблема в том, что сеанс отбрасывается, если он неактивен в течение некоторого времени. Что мне нужно, так это сеанс, который всегда жив. Является ли надежный сеанс WCF чем-то, что может помочь? Или я могу просто поиграть с настройками таймаута?

Ответы [ 2 ]

43 голосов
/ 26 мая 2010

Нет, время надежного сеанса истекает, как и любого другого сеанса. Главный вопрос на самом деле: с какой стати вы хотите, чтобы ваши сеансы были «бесконечными» ?? Если вам это действительно нужно, вам нужно увеличить время ожидания сеанса.

Смысл надежного сеанса в том, что вызывающий абонент будет знать о любых потерянных сообщениях. Вопреки распространенному мнению, надежный сеанс не может гарантировать доставку сообщения, но если сообщение не может быть доставлено, по крайней мере, вызывающий абонент узнает об этом.

Проверьте некоторые из этих ресурсов для получения дополнительной информации:

7 голосов
/ 27 февраля 2013

если вы не используете канал, он закроется через некоторое время. Вы можете изменить время ожидания по умолчанию (которое составляет 10 минут) от привязки.

NetTcpBinding binding = new NetTcpBinding();
binding.ReceiveTimeout = TimeSpan.MaxValue;
binding.ReliableSession.InactivityTimeout = TimeSpan.MaxValue;

подробнее на MSDN

...