Session timeout

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Alexan
Завсегдатай
Сообщения: 213
Зарегистрирован: 17 фев 2003, 16:05
Откуда: NN - Montreal - Charlottetown - Montreal

Session timeout

Сообщение Alexan »

Уже задавал на canadaboard
http://canadaboard.com/cgi-bin/show_fil ... num=123626
Может кто-нибудь что-нибудь добавит:

Есть ASP.NET 1.1 application. Сессия должна продолжаться 30 минут. Но клиент жалуется, что иногда он получает сообщение что Session Expired через 5 минут после залогинивания. Воспроизвести не могу. Чего смотреть? Почему вдруг сессия экспаряется?
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

Сообщение aissp »

Информации маловато. Я так понимаю что у себя ты не можешь воспроизвести етот баг? Только у клиента? Если так то похоже что куки у клиента експаряться раньше 30 минут. Возможно просто не синхронизированы часы, я бы лог добавил, когда номер сессии выдан, что получено от клиента и поглядел бы.
Alexan
Завсегдатай
Сообщения: 213
Зарегистрирован: 17 фев 2003, 16:05
Откуда: NN - Montreal - Charlottetown - Montreal

Сообщение Alexan »

aissp писал(а):Информации маловато. Я так понимаю что у себя ты не можешь воспроизвести етот баг? Только у клиента? Если так то похоже что куки у клиента експаряться раньше 30 минут. Возможно просто не синхронизированы часы, я бы лог добавил, когда номер сессии выдан, что получено от клиента и поглядел бы.
Кстати, хотел добавить, что клиент говорит, что так было не только у него, но и у его коллеги, который логинился с другого компьютера. Правда бывает так довольно редко, может раз в день.
ura
Житель
Сообщения: 915
Зарегистрирован: 09 мар 2003, 22:46

Сообщение ura »

Если лень писать логи для сессии, то можно сделать невидимый IFRAME в котором дергать что то на серверной стороне по таймеру каждую минуту, чтобы сессия никогда не завершалась пока клиент не закроет браузер. Тогда по крайней мере будет ясно на чьей стороне проблема.
Alexan
Завсегдатай
Сообщения: 213
Зарегистрирован: 17 фев 2003, 16:05
Откуда: NN - Montreal - Charlottetown - Montreal

Сообщение Alexan »

ura писал(а):Если лень писать логи для сессии, то можно сделать невидимый IFRAME в котором дергать что то на серверной стороне по таймеру каждую минуту, чтобы сессия никогда не завершалась пока клиент не закроет браузер. Тогда по крайней мере будет ясно на чьей стороне проблема.
Да я как-то на продакшн не могу особых экспериментов делать, а если я положу на тестинг, то кто будет тестировать целый день, учитывая, что случается это довольно редко.
Alexan
Завсегдатай
Сообщения: 213
Зарегистрирован: 17 фев 2003, 16:05
Откуда: NN - Montreal - Charlottetown - Montreal

Сообщение Alexan »

tornik писал(а):Была похожая проблема… Много кровушки попила... Правда только с IE... Причина была в количестве используемых кук. IE поддерживает не более 20 кук.... Дальше эта гадость (IE) начинает удалять наиновейшую куку. Очень часто это ASP.NET session id кука....
И как же это пофиксить?
Alexan
Завсегдатай
Сообщения: 213
Зарегистрирован: 17 фев 2003, 16:05
Откуда: NN - Montreal - Charlottetown - Montreal

Сообщение Alexan »

tornik писал(а):Уменьшить количество используемых кук до приемлего. Вобще непонятно зачем такое число кук в ASP.NET application.

В моем случаи был third-party контрол который использовал много кук по ошибке. Переключил его на использование сесии и проблема ушла.
А если это вообще посторонние куки?
Alexan
Завсегдатай
Сообщения: 213
Зарегистрирован: 17 фев 2003, 16:05
Откуда: NN - Montreal - Charlottetown - Montreal

Сообщение Alexan »

tornik писал(а):Извенитe, неясно высказался. Это лимит для одного хоста.
okay, тогда посмотрю, спасибо.
Alexan
Завсегдатай
Сообщения: 213
Зарегистрирован: 17 фев 2003, 16:05
Откуда: NN - Montreal - Charlottetown - Montreal

Сообщение Alexan »

Решил попробовать использовать SQLServer mode вместо InProc:
В соответствии с этой статьей
http://support.microsoft.com/kb/317604/
создал db на сервере и изменил web.config
Но получаю следующую ошибку:

The type System.Data.SqlClient.SqlDataAdapter in Assembly System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 is not marked as serializable.

В статье: http://support.microsoft.com/kb/312112#appliesto
прочитал, что это баг Microsoft ASP.NET 1.0. Но я использую Framework 1.1. Поставить атрибут [Serializable]? Не хотелось бы делать изменения в коде, если это не необходимо.
Ответить