Знатокам 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: 9392
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: 9392
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: 9392
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:
Goshik
Уже с Приветом
Posts: 343
Joined: 14 Mar 2002 10:01

Post by Goshik »

попробовать не через имя домена, а по прямому IP сходить на те же страницы.
User avatar
Слоняра
Уже с Приветом
Posts: 1193
Joined: 29 Dec 2003 17:19
Location: NY

Post by Слоняра »

[You not gonna bellive it!]
Четвертий год вся аутентификачия работает через сесию и всо нормально....
Даже у клиентво у которих до 10.000 одноверененных узеров, :mrgreen:
Может дело в ручках?? в смысле в настройках? :nono#:
Чулпан
Новичок
Posts: 28
Joined: 17 Jun 2003 04:41

Post by Чулпан »

Скорее всего следует согласиться с предыдущим оратором, написавшем

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

Проблема только в том, что сервер - не свой, а хостинговый и доступа к его настройкам нет. Поэтому все шишки падают на кодера а не на админа.
Кстати после гневного запроса к админу все заработало опять...

К вопросу о программировании на ASP и ASP.NET:
Для ASP.NET очень велика начальная цена вхождения - имеет смысл делать на нем проекты размера больше среднего. Маленькие и средние ГОРАЗДО проще и быстрее делать на ASP (ИМХО).
DmTs
Удалён за грубость
Posts: 5791
Joined: 15 Mar 1999 10:01
Location: с Родины

Post by DmTs »

Чулпан wrote:Для ASP.NET очень велика начальная цена вхождения - имеет смысл делать на нем проекты размера больше среднего. Маленькие и средние ГОРАЗДО проще и быстрее делать на ASP (ИМХО).


Кто нибудь скажет как совместить asp.net и javascript on client
В частности мне нужно сделать на динамически формирующихся линках по онклику попап окна, в которых будут грузиться тоже aspx страницы..

На asp я такое делал ( но на код лучше не смотреть ;) )
"Имеешь одни часы - знаешь который час. Имеешь несколько - сомневаешься."
Чулпан
Новичок
Posts: 28
Joined: 17 Jun 2003 04:41

Post by Чулпан »

DmTs wrote:Кто нибудь скажет как совместить asp.net и javascript on client
В частности мне нужно сделать на динамически формирующихся линках по онклику попап окна, в которых будут грузиться тоже aspx страницы..

На asp я такое делал ( но на код лучше не смотреть ;) )


Проще всего сделать так:
Создайте переменную типа asp:Literal и в ее Text параметр запишите ваш JavaScript код. Создавать ее надо динамически в Page_Load функции. Есть еще специализированные функции для создания клиентского JavaScript кода, но на мой взгляд это уже излишество.

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