ASP.NET, сэссия и рестарт приложения
Published at June 9, 2009 · 3 min read
Всё началось с того, что в спецификации к проекту написали примерно такое: “Время продолжительности сэссии пользователя на сайте должно составлять 120 минут”. После чего, в web.config была добавлена следующая строка:
<p>
<em><sessionState mode="InProc" cookieless="false" timeout="120" />
</em>
</p>
А на страницу был добавлен такой мета-тег:
<p>
<strong><meta http-equiv="Refresh" content="7200; URL=/EzRc/Pages/LogOn/SessionExpired.aspx" />
</strong>
</p>
Следует упомянуть конфигурацию тестовых серверов: Windows Vista/2008, IIS7, .NET 3.5. Ничто не предвещало беды. Но, как и полагается, в один “прекрасный” день всеми людимые QA написали баг следующего содержания: “Session expiration occurs prior to 30 min (and as little as 10 min).” При этом повторить его было достаточно просто:
...