Документация по этой теме плохой. Я использую службы WCF с NetTcpBinding, размещенные в службе Windows. Проблема в том, что сеанс отключается, когда он неактивен в течение некоторого времени. Мне нужна сессия, которая всегда жива. Является ли WCF надежным сеансом что-то, что может помочь? Или я могу просто играть с настройками таймаута?
Какова цель надежной сессии WCF?
Ответ 1
Нет, надежный сеанс будет тайм-аут, как и любой другой сеанс. Главный вопрос на самом деле: почему вы хотите, чтобы ваши сессии были "бесконечными"? Если вам это действительно нужно, вам нужно отключить таймауты на сеансе.
Точка надежного сеанса - это то, что вызывающий абонент узнает о любых потерянных сообщениях. Вопреки распространенному мнению, надежный сеанс не может гарантировать доставку сообщения, но если сообщение не может быть доставлено, как минимум вызывающий абонент узнает об этом.
Ознакомьтесь с некоторыми из этих ресурсов для получения дополнительной информации:
Ответ 2
Если вы не используете канал, он закроется через некоторое время. вы можете изменить таймаут по умолчанию (который составляет 10 минут) из привязки.
NetTcpBinding binding = new NetTcpBinding();
binding.ReceiveTimeout = TimeSpan.MaxValue;
binding.ReliableSession.InactivityTimeout = TimeSpan.MaxValue;
читайте больше на MSDN