2015-01-29 2 views
1

Мой сеанс IIS иногда теряет все данные, хранящиеся в нем, обычно это занимает около 3-5 минут, но определенно меньше таймаута сеанса, установленного в файле web.config. Проблема не может быть воспроизведена надежно, когда это происходит, по сравнению с журналами AppPool не перерабатывается, а идентификатор сеанса остается неизменным, он просто теряет все данные. Любые предложения по отладке?потери данных сеанса в asp.net

До сих пор я пытался перезаписать поставщика сеанса и хранить данные сессии в статической переменной, мы проверили все соответствующие таймаут, и мы сохранили фиктивное значение в сеансе, что теряется, а

ответ

0

Ряд вещи могут привести к таинственным исчезновениям состояния сеанса.

  1. Ваш sessionState тайм-аут истек
  2. Вы обновить web.config или другой тип файла, который вызывает ваш AppDomain перерабатывать
  3. Ваш AppPool в IIS перерабатывает
  4. Вы обновлять свой сайт с большим количеством файлов , а ASP.NET активно уничтожает ваш AppDomain для перекомпиляции и сохранения памяти.

Если вы используете IIS 7 или 7.5, вот несколько вещей, чтобы искать:

  1. По умолчанию IIS устанавливает AppPools превратить себя после периода бездействия.
  2. По умолчанию IIS заставляет AppPools перерабатывать каждые 1740 минут (очевидно, в зависимости от конфигурации вашего корня, но это значение по умолчанию)
  3. В IIS ознакомьтесь с «Расширенными настройками» вашего AppPool. В нем есть свойство «Idle Time-out». Установите это значение на ноль или на большее число, чем значение по умолчанию (20).
  4. В IIS проверьте настройки «Утилизация» вашего AppPool. Здесь вы можете включить или отключить ваш AppPool от переработки. Вторая страница мастера - это способ входа в журнал событий каждого типа AppPool.

Если вы используете IIS 6, применяются те же настройки (по большей части, но с разными способами доступа к ним), однако получение их для регистрации рециклов - это больше боль. Вот ссылка на способ заставить IIS 6 регистрировать события Recycle AppPool:

+0

Спасибо за ваш ответ, я могу исключить обновления для web.config и различные тайм-ауты, я настрою IIS для регистрации событий AppPool к Журналу событий сейчас, спасибо за этот отзыв – larkre

+0

@larkre Если этот ответ полезен для этого вопроса, тогда проголосуйте и примите ответ. Другие люди, которые находят информацию, связанную с этим вопросом, получат здесь ответ. –