2010-12-16 3 views
0

Я вручную поддерживаю сеанс WCF. При входе клиента GUID предоставляется клиенту как sessionId. Все остальные методы имеют sessionId в качестве параметра, который предоставит клиент. Все прекрасно работает. Теперь, как я могу управлять сеансом сеанса вручную?Вручную перехват сеанса WCF

+0

Что именно вы подразумеваете под «ручной сеанс WCF WCF»? Какова ценность ServiceBehavior.InstanceContextMode для вашей службы? – Jan 2010-12-16 12:14:06

ответ

1

Давайте сначала выясним, что вы пытаетесь поддерживать состояние между вызовами WCF, что в первую очередь нарушает принцип, в первую очередь. (Посмотрите на вопрос: Manually Handling WCF Session Timeout)

Предполагая, что вы генерируете направляющее устройство, которое является sessionid, тогда вам нужно будет хранить это где-то, база данных кажется вероятной. Сохраните идентификатор сессии с текущим значением DateTime. Каждый раз, когда запрос получен, проверьте хранилище для sessionID и проверьте, был ли превышен ваш тайм-аут, если это удалено с идентификатором sessionID и сообщается о состоянии обратно клиенту. Если таймаут не был превышен, обновите DateTime до текущего текущего DateTime и обработайте запрос.

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