теряются session переменные

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

теряются session переменные

Post by Чулпан »

В Интернетовском ДОТ НЕТ проекте (C# / IIS / MS SQL Server) вдруг ни с того ни с чего начинают теряться session переменные (session expired). Причем иногда это происходит через 5 секунд после залогинивания. :х
Также внезапно может исчезнуть. Что может быть причиной? :pain1:

Для сессии используется InProc

<sessionState
mode="InProc"
stateConnectionString="tcpip=..."
cookieless="false"
timeout="20"
/>
Niky
Уже с Приветом
Posts: 550
Joined: 31 Mar 2000 10:01
Location: Moscow --> Baltimore, MD

Post by Niky »

Причины могут быть следующие:

1. Ваш application работает на нескольких серверах (Web Farm) или на мультипроцессорном сервере (в режиме Web Garden). В этом случае каждый процесс поддерживает свой session, и при обработке разных запросов от одной сессии разными процессами session будет разным.

2. Session теряется из-за process recycling - ASP.NET может перезапускать процесс (aspnet_wp.exe), в котором работает ваш application, при этом session умирает вместе с процессом, т.к. используется InProc model. Перезапуск может происходить по разным причинам: application ест слишком много памяти, слишком много запросов в очереди, application не отвечает на запросы, или application сконфигурирован так, чтобы перезапускаться через определенное время или после определенного количества запросов. Посмотрите установки в секции processModel файла machine.config. Кроме того, должны остаться следы в EventLog.
Bobo
Уже с Приветом
Posts: 518
Joined: 04 Jun 2002 01:40
Location: CA, USA

Post by Bobo »

3. Aspnet по какой-то причине запускает новую копию application в новом AppDomain в том же процессе. Такое может случаться, если меняется дата web.config, например какой-нибудь антивирус меняет ему дату.
Goshik
Уже с Приветом
Posts: 343
Joined: 14 Mar 2002 10:01

Post by Goshik »

попробуйте исползовать ИП аддресс а не имя машины при обращении в браузере.
Был точно такой же глюк.
Bobo
Уже с Приветом
Posts: 518
Joined: 04 Jun 2002 01:40
Location: CA, USA

Post by Bobo »

Goshik wrote:попробуйте исползовать ИП аддресс а не имя машины при обращении в браузере.
Был точно такой же глюк.


http://support.microsoft.com/default.as ... -us;316112
Чулпан
Новичок
Posts: 28
Joined: 17 Jun 2003 04:41

Post by Чулпан »

Niky wrote:Причины могут быть следующие:

1. Ваш application работает на нескольких серверах (Web Farm) или на мультипроцессорном сервере (в режиме Web Garden). В этом случае каждый процесс поддерживает свой session, и при обработке разных запросов от одной сессии разными процессами session будет разным.

2. Session теряется из-за process recycling - ASP.NET может перезапускать процесс (aspnet_wp.exe), в котором работает ваш application, при этом session умирает вместе с процессом, т.к. используется InProc model. Перезапуск может происходить по разным причинам: application ест слишком много памяти, слишком много запросов в очереди, application не отвечает на запросы, или application сконфигурирован так, чтобы перезапускаться через определенное время или после определенного количества запросов. Посмотрите установки в секции processModel файла machine.config. Кроме того, должны остаться следы в EventLog.


Нет это не мой случай. Нет никакого Web Farm, web.config не менялся, что касается recycling, то это возможно, но проблема в том, что такое поведение возникло после загрузки новой версии сайта - принципиально ничего нового не поменялось ни в security system ни в работе с сессиями, добавились только некоторые новые фичи. Как добавление новых фич может резко изменить поведение всей системы??? :pain1:
Подскажите?
Niky
Уже с Приветом
Posts: 550
Joined: 31 Mar 2000 10:01
Location: Moscow --> Baltimore, MD

Post by Niky »

Новые features могут изменить количество ресурсов, потребляемых приложением (если я правильно помню, вы в другом топике жаловались на возросшее потребление CPU - до 99%?). Это вполне может привести к recycling, и, как результат, к потере Session, хранимого in process.
Чулпан
Новичок
Posts: 28
Joined: 17 Jun 2003 04:41

Post by Чулпан »

Niky wrote:Новые features могут изменить количество ресурсов, потребляемых приложением (если я правильно помню, вы в другом топике жаловались на возросшее потребление CPU - до 99%?). Это вполне может привести к recycling, и, как результат, к потере Session, хранимого in process.


А при каких %% происходит recycling если тэг <processModel> явно не используется?

И заодно - а ведутся ли где-то логи когда и почему произошел recycling ?

Заранее спасибо
Niky
Уже с Приветом
Posts: 550
Joined: 31 Mar 2000 10:01
Location: Moscow --> Baltimore, MD

Post by Niky »

Чулпан wrote:А при каких %% происходит recycling если тэг <processModel> явно не используется?

И заодно - а ведутся ли где-то логи когда и почему произошел recycling ?

Заранее спасибо

А какая версия IIS? Если 5, то поищите processModel в machine.config. Recycling может происходить из-за превышения лимита на threads (working or IO), requests in queue, memory, response time. CPU utilization при этом может косвенно указывать на наличие проблем. Можете попробовать поменять logLevel на All и посмотреть, что напишется в EventLog.

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