Время ожидания сеанса неожиданно
Я сталкиваюсь с очень странной проблемой. На самом деле я разработал веб-приложение в ASP.NET с использованием C#. Мое приложение состоит из двух частей: одна для администратора и вторая для пользователя. Когда я запускаю свое приложение на локальном сервере, оно работает нормально, но когда я размещаю его на удаленном сервере, я сталкиваюсь со странной проблемой. Проблема в том, что когда я перемещаюсь по своему приложению или нажимаю любую кнопку или ссылку, иногда он перенаправляет на страницу входа. Я не понимаю, в чем проблема. Я проверяю сессию на каждой странице следующим образом:
if (Session["admin"] != null)
{
// do some thing.
}
else
{
Response.Redirect("AdminLogin.aspx");
}
И я установил время сеанса в файле web.config <sessionState mode="InProc" timeout="10000"></sessionState>
но все же я сталкиваюсь с этой проблемой. Так может кто-нибудь помочь мне, пожалуйста? Благодарю.
1 ответ
Если вы используете сеансы InProc, возможно, ваш пул приложений истекает из-за неактивности (IIRC, по умолчанию 20 минут). Когда это происходит, процесс IIS завершается, и ваше состояние сеанса будет потеряно, поскольку он находится в памяти.
Решение состоит в том, чтобы либо переключиться на состояние сеанса на основе SQL Server, либо, возможно, State Server, либо отключить тайм-ауты простоя AppPool (и перезапуск, который может вызвать ту же проблему).