сеанс ASP.NET неожиданно завершается

У меня очень странная проблема с сеансом в ASP.NET 2.0. Система, над которой я работаю, использует переменные сеанса для хранения параметров объектов (например, вопросов и ответов) для создания отчета. Это экземпляры классов с тем же именем, поэтому они заполняются следующими параметрами:

Этот отчет создается на 4 страницах aspx. Первая определяет параметры местоположения и даты, вторая страница хранит вопросы, а третья хранит ответы. Последний отображает ссылки на сформированные отчеты в форматах Excel и HTML. Все данные переменных хранятся в сеансе, и все идет хорошо, до последней страницы, когда происходит что-то вроде Session.Abandon (), запускается событие Session_End и все переменные теряются. Это происходит только один раз в день для каждого зарегистрированного пользователя при первом использовании отчета, а затем вы можете попробовать в течение всего дня десятки раз и больше не увидите его.

Проблема возникает на той же странице ВСЕГДА, а режим сеанса - InProc.

Я уже выполнил следующие проверки:

  1. Проверено, были ли какие-либо команды Session.Abandon () или Session.Clear (). Нет ни одного.
  2. Проверено время ожидания сеанса, оно установлено на 18 минут, и проблема возникает в любое время, как указано выше, независимо от того, как долго вы его использовали (не более 18 минут).
  3. Проверено время ожидания форм в разделе «Аутентификация». Он также установлен на 18 минут.
  4. Я узнал, что есть ошибка с Server.Transfer (), которая может иногда сбрасывать сеанс и состояние просмотра, и заменена на Response.Redirec ()
  5. Мониторинг сеанса построчно код, и все идет хорошо, а при полной загрузке страница просто умирает. Все переменные исчезли, но сеанс все еще работает.
  6. Насколько я понимаю, IIS настроен правильно. У меня нет к нему доступа, но все остальные системы работают отлично.
  7. Мы также проанализировали некоторые из вышеупомянутых систем в поисках подсказки о том, что может происходить, но их файлы web.config очень похожи на тот, который я возникла проблема, и не реализован специальный код для другого взаимодействия с сеансом.
  8. Также думал о мониторинге IIS на предмет перезапуска приложений, но я почти уверен, что он не превышает установленный по умолчанию предел 15. Тем не менее, я не У меня есть доступ к серверу IIS, и все тесты, проводимые на моем компьютере, проводятся с использованием сервера разработки ASP.NET. Проблема возникает на обоих.
  9. Проверили возможности повторного использования процесса, например, изменения файлов .config и asax, изменения в / в каталоге bin, ничего не происходит.

Применяются следующие ограничения:

  1. Невозможно изменить режим сеанса к другим, кроме InProc, в соответствии с политикой компании.
  2. «Процесс» создания отчета занимал 4 страницы. Я не согласен с этим, но не могу переделать это из-за ограничений по времени и бюджету.

Любые мысли или решения полезны. Я буду держать вас в курсе всех необходимых обновлений и тестов.

8
задан Alexandre Fernandes 28 June 2011 в 14:51
поделиться