У меня проблема с приложением ASP.NET, которое сводит меня с ума.
Когда пользователь оставляет страницу неактивной в течение периода времени, в течение которого сеанс истекает, и выдается ошибка из-за невозможности разрешения переменных сеанса (в любом случае я буду перехватывать эту ошибку, но это не проблема).
Я кодировал «дефиблятор», который будет выполнять невидимую обратную передачу после того, как истечет половина времени ожидания сеанса, и это, кажется, работает нормально - оставление приложения на 30 минут не вызывало ошибку, даже если время ожидания сеанса было установлено на 20 минут.
Однако сегодня утром один из других разработчиков испытал таймаут - как это возможно?
При дальнейшем расследовании я думаю, что проблема возникает, когда превышено время ожидания проверки подлинности с помощью форм - даже если дефиблятор (по-видимому) поддерживает сеанс в действии. Я читал, что билет аутентификации будет переиздан только в том случае, если обратная передача произойдет после того, как истечет половина указанного периода времени ожидания, и это не может быть проблемой, так как при дефрагментации будут выдаваться запросы во второй половине периода ожидания - так почему это не переиздано?
Полагаю, я мог бы обойти проблему, установив время аутентификации на 8 часов или около того, но это плохое решение.
Кто-нибудь может пролить свет на это?
Заранее спасибо
[Edit 24/11/2008] Просмотр файлов журналов оказался поучительным и запутанным. Я могу видеть, как дефригатор сработал после 10 минут бездействия, но, хотя Session_Id, по-видимому, является постоянным, идентификатор билета для аутентификации форм изменяется - не уверен, должен ли он или нет. Я сейчас формулирую план тестирования и опубликую его, когда закончу.
Спасибо всем, кто оставил отзыв.
[Редактировать 24/11/2008] Что ж, я в тупике - в данный момент все работает нормально! Билет аутентификации регенерируется, когда запускается дефриб (идентификатор изменяется) и поддерживается сеанс. Была ли это проблема сервера - не могу сказать. Я сталкивался с этой проблемой раньше и никогда не доходил до ее сути, и это очень расстраивает - конечно, это не должно быть таким трудным. Я собираюсь оставить это на время, так как я должен продолжить некоторые другие аспекты приложения. Мне просто нужно обойти эту проблему, которая может никогда не появиться на сайте клиента.
Еще раз спасибо за вводные данные - если я добьюсь прогресса, я опубликую его здесь.