Срок действия значения, хранящегося в переменной сеанса, истекает намного раньше, чем значение, указанное в SessionState

#c# #.net #session-variables

#c# #.net #переменные сеанса

Вопрос:

Я попытался установить значение SessionState равным 10 дням в файле web config

 <sessionState timeout="14400" />
 

Но срок действия значения в сеансе истекает примерно через 1-2 часа

Содержимое папки Bin не изменилось, никто не обращался к ферме, когда я проверял это

     userDetail = SetRoles(somevalue);
    System.Web.HttpContext.Current.Session["UserDetail"] = userDetail;
 

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

Комментарии:

1. Если это сеанс InProc (который используется по умолчанию), то вы сохраняете каждый сеанс в памяти в течение 10 дней после последнего взаимодействия пользователя с системой. Или до тех пор, пока пул приложений не будет перезапущен, возможно, из-за нехватки памяти.

Ответ №1:

Измените состояние сеанса в web.config следующим образом

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