В Интернетовском ДОТ НЕТ проекте (C# / IIS / MS SQL Server) вдруг ни с того ни с чего начинают теряться session переменные (session expired). Причем иногда это происходит через 5 секунд после залогинивания.
Также внезапно может исчезнуть. Что может быть причиной?
Для сессии используется InProc
<sessionState
mode="InProc"
stateConnectionString="tcpip=..."
cookieless="false"
timeout="20"
/>
теряются session переменные
-
- Уже с Приветом
- Posts: 550
- Joined: 31 Mar 2000 10:01
- Location: Moscow --> Baltimore, MD
Причины могут быть следующие:
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.
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.
-
- Уже с Приветом
- Posts: 518
- Joined: 04 Jun 2002 01:40
- Location: CA, USA
-
- Уже с Приветом
- Posts: 343
- Joined: 14 Mar 2002 10:01
-
- Уже с Приветом
- Posts: 518
- Joined: 04 Jun 2002 01:40
- Location: CA, USA
Goshik wrote:попробуйте исползовать ИП аддресс а не имя машины при обращении в браузере.
Был точно такой же глюк.
http://support.microsoft.com/default.as ... -us;316112
-
- Новичок
- Posts: 28
- Joined: 17 Jun 2003 04:41
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 ни в работе с сессиями, добавились только некоторые новые фичи. Как добавление новых фич может резко изменить поведение всей системы???
Подскажите?
-
- Уже с Приветом
- Posts: 550
- Joined: 31 Mar 2000 10:01
- Location: Moscow --> Baltimore, MD
-
- Новичок
- Posts: 28
- Joined: 17 Jun 2003 04:41
Niky wrote:Новые features могут изменить количество ресурсов, потребляемых приложением (если я правильно помню, вы в другом топике жаловались на возросшее потребление CPU - до 99%?). Это вполне может привести к recycling, и, как результат, к потере Session, хранимого in process.
А при каких %% происходит recycling если тэг <processModel> явно не используется?
И заодно - а ведутся ли где-то логи когда и почему произошел recycling ?
Заранее спасибо
-
- Уже с Приветом
- Posts: 550
- Joined: 31 Mar 2000 10:01
- Location: Moscow --> Baltimore, MD
Чулпан 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.