Давайте сначала выясним, что вы пытаетесь поддерживать состояние между вызовами WCF, что, скорее, нарушает принцип, во-первых, первым делом. (Взгляните на вопрос: Ручная обработка времени ожидания сеанса WCF )
Предполагая, что вы генерируете guid, который является идентификатором сеанса, вам нужно где-то его сохранить, база данных кажется вероятной. Сохраните там sessionID с текущим DateTime. При каждом получении запроса проверяйте хранилище на наличие идентификатора сеанса и проверяйте, не превышен ли ваш тайм-аут, в таком случае утилизируйте идентификатор сеанса и сообщайте о состоянии клиенту. Если время ожидания не было превышено, обновите DateTime до текущего текущего DateTime и обработайте запрос.