Время сеанса истекло до истечения времени ожидания - PullRequest
0 голосов
/ 05 июля 2018

Я настроил сессионное состояние без файлов cookie в ASP.Net Web API, и время ожидания составляет 20 минут.

<sessionState mode="InProc" timeout="20" />

При каждом новом установленном сеансе я сохраняю session_id, сгенерированный в словаре для отслеживания сеансов, и соответственно удаляю session_id из словаря всякий раз, когда session_end.

Но я сталкиваюсь со странной проблемой (не очень часто): всякий раз, когда новый пользователь устанавливает сеанс, он немедленно истекает, а session_id удаляется из словаря.

Session_End code:

protected void Session_End()
    {
        var sessionId = this.Session.SessionID;
        if (SessionDictionary.ContainsKey(sessionId))
        {
            SessionDictionary.Remove(sessionId);
        }
    }

Так что, пожалуйста, если кто-то может помочь мне в этом. Кроме того, у меня есть сомнения, относится ли «this.Session.SessionID» к идентификатору сессии, срок действия которого истек, или к тому, который создан в настоящее время.

Заранее спасибо

1 Ответ

0 голосов
/ 05 июля 2018

Вы поддерживаете балансировщик нагрузки? Если это так, вы можете просто подключиться к серверу в вашей ферме, который фактически не имеет настройки сеанса, специфичной для каждого сервера, как вы объявили его как в процессе

...