Знатокам ASP и sessions

Чулпан
Новичок
Posts: 28
Joined: 17 Jun 2003 04:41

Знатокам ASP и sessions

Post by Чулпан »

Имеется простая web программа на ASP / JScript в которой используются sessions для идентификации пользователя. При переходе со страницы на страницу иногда случайным образом сесси теряются.
Поиск на форумах через гугл и на микрософте дал массу подобных опубликованных вопросов и лишь несколько ответов.

Ответы были :
1) имя домена содержит подчеркивание. Нет, это не мой случай
2) сервер содержит антивируснуб программу, которая проверяет global.asa и изменяет его время создания в своих целях, что приводит к перезагрузке приложения. Тоже не мой случай.
3) ИЕ 5.0 5.5 6.0 имеют ошибку, которая теряет сессию если открыть новое окно с текущего приложения и опять закрыть. Похоже тоже не мой случай.

Есть ли еще какие идеи? Программа работала нормально и вдруг перестала (через каждые 5-10 переключений страниц сессия теряется). ISP клянется что ничего не менял на серваке в проследнее время.

Any help appreciated.
NNemo
Уже с Приветом
Posts: 1935
Joined: 15 Sep 2003 17:49
Location: Ukraine, Mariupol -> USA everywhere :-)

Post by NNemo »

А странички все одни и те же?
Я бы порекомендовал посмотреть какие куки приходят.
Сессию можно подавить для отдельно взятой странички.
shadow7256
Уже с Приветом
Posts: 9402
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Post by shadow7256 »

Чулпан
Новичок
Posts: 28
Joined: 17 Jun 2003 04:41

Post by Чулпан »

2 Nemo:

> А странички все одни и те же?

Нет, потеря происходит на случайной страничке.

> Я бы порекомендовал посмотреть какие куки приходят.

Куки вообще-то не используются, только сессии. Или вы хотите сказать, что сессии реализованы через куки? А как их можно посмотреть?

> Сессию можно подавить для отдельно взятой странички.

Нет этого не делается нигде в коде,

2 shadow7256:

Нет load balancing не используется на сервере.

Видимо это очень частая проблема. Все ASP форумы переполнены криками о помощи о потере сессий и ни в одном нет толкового совета, что же это может быть.
DmTs
Удалён за грубость
Posts: 5791
Joined: 15 Mar 1999 10:01
Location: с Родины

Post by DmTs »

Провайдер не webmatrixhosting чего то там?
"Имеешь одни часы - знаешь который час. Имеешь несколько - сомневаешься."
shadow7256
Уже с Приветом
Posts: 9402
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Post by shadow7256 »

Чулпан wrote:Или вы хотите сказать, что сессии реализованы через куки?


Естествеено :umnik1:
DmTs
Удалён за грубость
Posts: 5791
Joined: 15 Mar 1999 10:01
Location: с Родины

Post by DmTs »

shadow7256 wrote:
Чулпан wrote:Или вы хотите сказать, что сессии реализованы через куки?


Естествеено :umnik1:


Можно реализовать сессии и через куки наверное, но зачем, если на сервере есть объект для каждого юзера Session в котором все и хранится и которой должен работать правильно. С куками на клиенте он никак не связан.. Хотя.. я вспоминая что есть в механизме какая то опция, позволяющая так работать, но чисто как опция, все должно прекрасно работать и без кук
"Имеешь одни часы - знаешь который час. Имеешь несколько - сомневаешься."
User avatar
cityzen
Уже с Приветом
Posts: 3759
Joined: 11 Feb 2004 13:37

Post by cityzen »

DmTs wrote:
shadow7256 wrote:
Чулпан wrote:Или вы хотите сказать, что сессии реализованы через куки?


Естествеено :umnik1:


Можно реализовать сессии и через куки наверное, но зачем, если на сервере есть объект для каждого юзера Session в котором все и хранится и которой должен работать правильно. С куками на клиенте он никак не связан..


IIS использует куку, для того, чтобы связать конкретного клиента с его сессионым объектом. В этой куке хранится SessionID.
HTTP - stateless protocol. Поэтому для реализаций сессий приходится использовать либо куки либо URL rewriting.
One small step for me ...One giant leap for.. A frog?
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Post by Strannik223 »

Code: Select all

<sessionState mode="Off|InProc|StateServer|SQLServer"
     cookieless="true|false"
   ....


Как видно есть 3 способа хранить информацию о сессиях, и в процессе это только один из них.
И как было указано, кука нужна для того что бы идентифицировать клиента. SessionID то как то клиентом должен передаваться серверу.
Никакой разрухи нет. (с) Проф. Преображенский.
shadow7256
Уже с Приветом
Posts: 9402
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Post by shadow7256 »

Кстати шальная мысль в голову пришла..

у Вас нигде не стоит Session.Timeout или Session.Abandon вызовы. ?

Вряд ли это причина, но все же...
User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Post by katit »

Все не про то.

Во-первых товарищ говорит об ASP, не ASP.NET :umnik1:

Сессия привязана к клиенту через куки в ASP
В ASP.NET можно без куки, но тогда в УРЛ будет добавлятся номер сессии.

99% проблем - настройки IIS и сервера.

Механизмы хранения сессии - это не причем. Если сервер теряет сессию (и клиент в этом не виноват) - надо настраивать сервер.

В ASP.NET проблема чаще всего когда другие пользователи на сервере напишут "крутого кода" и ASP.NET процесс начинает все подряд recycle чтобы этим дибилам места освободить
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Post by Strannik223 »

katit wrote:Все не про то.
Во-первых товарищ говорит об ASP, не ASP.NET :umnik1:


Ах, да. Как кто то тут говорил недавно, молотку всюду гвозди мерещатся.
<Offtopic>
А вообще это наверное грустно в наши дни на ASP програмить.
</Offtopic>
Никакой разрухи нет. (с) Проф. Преображенский.
User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Post by katit »

Strannik223 wrote:<Offtopic>
А вообще это наверное грустно в наши дни на ASP програмить.
</Offtopic>

Да и не в наши грустно было. Я на ASP сделал аж 2 странички :mrgreen:

A ASP.NET мне очень нравится. Очень хорошая штука как для начинающих так и для тех кому надо поглубже.. (IMO)
User avatar
Spechtus
Уже с Приветом
Posts: 180
Joined: 03 Aug 2003 02:56
Location: Kharkov -> San Diego -> Laguna Niguel, CA -> Aliso Viejo, CA

Post by Spechtus »

A little bit of Offtopic:
In my opinion the best thing to do is to turn off sessions in IIS and create your own mechanism of tracking users (using cookies + DB). We switched to that mechanism in our new web app release - nobody seems to regret about it :):)
Do or do not. There is no try...
User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Post by katit »

Spechtus wrote:A little bit of Offtopic:
In my opinion the best thing to do is to turn off sessions in IIS and create your own mechanism of tracking users (using cookies + DB). We switched to that mechanism in our new web app release - nobody seems to regret about it :):)


Ну если ASP.NET то там и так оно есть

A так наверное надо забросить все это и как крутые пацаны isapi писать.. :mrgreen:

Return to “Вопросы и новости IT”