2012-01-17 2 views
0

У меня есть служба wcf, к которой подключаются несколько клиентов. Если один из них хочет отключить, то завершите сеанс прокси, сообщите другим пользователям и т. Д.Проверить подключение всех клиентов к службе wcf

Но иногда клиент отключается от службы wcf некорректно (например, пользователь заканчивает свой процесс). Как обнаружить, этот клиент отключен и уведомляет других клиентов?

+1

Пожалуйста, разместите здесь больше контекста. Какое обязательство вы используете? Что такое контракт? Как вы обнаруживаете «правильное» разъединение? Это поможет людям понять ваш вопрос. – oleksii

+0

Поддерживаете ли вы объект сеанса среди разных клиентов? –

+0

@oleksii Правильное отсоединение - это когда пользователи, которые собираются отключить, пересылают список трансляций простого списка сообщений «ActionType.Disconnect». Проблема в том, что процесс просто закрыт внезапно, и у него нет времени для вызова этой трансляции() – Saint

ответ

4

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

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

Надеюсь, это поможет.

Смежные вопросы