Сеанс заканчивается в веб-приложении ASP.NET - PullRequest
1 голос
/ 15 июня 2019

Уважаемые,

У меня есть приложение ASPX.Net (Framework 4.5.1), Кажется, что сеанс заканчивается каждые 20 минут, я пытался сделать следующее, но сеанс все еще заканчивается через 20 минут.

В конфигурационном файле я добавляю:

<system.web>
  <sessionState timeout="60000" cookieless="AutoDetect" mode = "InProc" />
</system.web>

При добавлении нового сеанса я добавляю:

HttpContext.Current.Session.Timeout = 60000;

В Глобальном классе я добавляю:

protected void Session_Start(object sender, EventArgs e)
{
    Session.Timeout = 60000;
}

Обратите внимание, что я пытался увеличить время ожидания и уменьшить его, но ничего не изменилось.

1 Ответ

0 голосов
/ 16 июня 2019

Некоторые хостинг-провайдеры отменяют ваши настройки. Вы не можете изменить это значение. Я рекомендую вам использовать Cookie вместо Session.

Если вы хотите использовать сессию, вы можете использовать этот основной чит. Добавьте этот блок кода в вашу MasterPage / Layout. Перед добавлением необходимо создать пустую страницу для этих запросов.

<script>
            PingAspToKeepSession();
            function PingAspToKeepSession() {
                var url = "/Session/Refresh";
                var httpOb = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
                httpOb.open("POST", url, true);
                httpOb.send("");
                window.setTimeout("PingAspToKeepSession();", 60000); // every 60 seconds
            }
</script>

Или вы можете попробовать изменить machine.config: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ machine.config

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...