Страница 1 из 1
Session timeout
Добавлено: 17 ноя 2006, 10:33
Alexan
Уже задавал на canadaboard
http://canadaboard.com/cgi-bin/show_fil ... num=123626
Может кто-нибудь что-нибудь добавит:
Есть ASP.NET 1.1 application. Сессия должна продолжаться 30 минут. Но клиент жалуется, что иногда он получает сообщение что Session Expired через 5 минут после залогинивания. Воспроизвести не могу. Чего смотреть? Почему вдруг сессия экспаряется?
Добавлено: 17 ноя 2006, 11:04
aissp
Информации маловато. Я так понимаю что у себя ты не можешь воспроизвести етот баг? Только у клиента? Если так то похоже что куки у клиента експаряться раньше 30 минут. Возможно просто не синхронизированы часы, я бы лог добавил, когда номер сессии выдан, что получено от клиента и поглядел бы.
Добавлено: 17 ноя 2006, 11:44
Alexan
aissp писал(а):Информации маловато. Я так понимаю что у себя ты не можешь воспроизвести етот баг? Только у клиента? Если так то похоже что куки у клиента експаряться раньше 30 минут. Возможно просто не синхронизированы часы, я бы лог добавил, когда номер сессии выдан, что получено от клиента и поглядел бы.
Кстати, хотел добавить, что клиент говорит, что так было не только у него, но и у его коллеги, который логинился с другого компьютера. Правда бывает так довольно редко, может раз в день.
Добавлено: 17 ноя 2006, 12:52
ura
Если лень писать логи для сессии, то можно сделать невидимый IFRAME в котором дергать что то на серверной стороне по таймеру каждую минуту, чтобы сессия никогда не завершалась пока клиент не закроет браузер. Тогда по крайней мере будет ясно на чьей стороне проблема.
Добавлено: 17 ноя 2006, 17:42
Alexan
ura писал(а):Если лень писать логи для сессии, то можно сделать невидимый IFRAME в котором дергать что то на серверной стороне по таймеру каждую минуту, чтобы сессия никогда не завершалась пока клиент не закроет браузер. Тогда по крайней мере будет ясно на чьей стороне проблема.
Да я как-то на продакшн не могу особых экспериментов делать, а если я положу на тестинг, то кто будет тестировать целый день, учитывая, что случается это довольно редко.
Добавлено: 17 ноя 2006, 18:48
Alexan
tornik писал(а):Была похожая проблема… Много кровушки попила... Правда только с IE... Причина была в количестве используемых кук. IE поддерживает не более 20 кук.... Дальше эта гадость (IE) начинает удалять наиновейшую куку. Очень часто это ASP.NET session id кука....
И как же это пофиксить?
Добавлено: 17 ноя 2006, 19:02
Alexan
tornik писал(а):Уменьшить количество используемых кук до приемлего. Вобще непонятно зачем такое число кук в ASP.NET application.
В моем случаи был third-party контрол который использовал много кук по ошибке. Переключил его на использование сесии и проблема ушла.
А если это вообще посторонние куки?
Добавлено: 17 ноя 2006, 19:20
Alexan
tornik писал(а):Извенитe, неясно высказался. Это лимит для одного хоста.
okay, тогда посмотрю, спасибо.
Добавлено: 30 ноя 2006, 10:49
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]? Не хотелось бы делать изменения в коде, если это не необходимо.