Сессии ASP.NET повреждены под нагрузкой

Мы видим, что под нагрузкой данные сеанса повреждены или отсутствуют, но сами сеансы остаются.

Наш веб-сайт размещается на IIS 7 под управлением ASP.Net 4.0 и с использованием состояния сеанса InProc в веб-ферме с 4 серверами за балансировщиком нагрузки Cisco ACE Appliance.

В настоящее время проблема случайна, мы не можем воспроизвести проблему по желанию. Это веб-приложение работало правильно последние семь месяцев.

Мы понимаем, что Microsoft не рекомендует использовать InProc с веб-фермами, даже если используются липкие сеансы.

У нас есть лабораторная среда, достаточно идентичная нашей производственная среда, но не может воспроизвести ее при значительной нагрузке (мы используем WAPT).

В нашей производственной среде мы попытались изолировать только один сервер за балансировщиком нагрузки, чтобы исключить «скачкообразное переключение серверов», вызванное самим балансировщиком нагрузки. Однако проблема сохраняется даже при работе на одном сервере. Мы не видим, чтобы утилизация AppPool или IIS происходила в производственной среде. Как правило, мы перерабатываем пулы рабочих приложений ежедневно в 3 часа ночи по восточному стандартному времени и месяцами работаем на ОС.

В сеансе хранятся самые разные объекты, от простых типов (целые числа и строки) , для всей нашей корзины покупок (сложный граф объектов) и даже для экземпляра пользовательского элемента управления (.ascx). Из-за невозможности легко сериализовать многие из этих объектов, мы не можем переключиться на внепроцессное хранилище сеансов за разумный период времени.

Кто-то предложил попробовать захватить сеанс HTTP с помощью Fiddler. Проблема с запуском Fiddler заключается в том, что мы не можем намеренно воспроизвести проблему самостоятельно. Таким образом, мы не можем зафиксировать HTTP-трассировку события сбоя по мере его возникновения. Журналы трассировки от WAPT в нашей лаборатории, скорее всего, будут содержать те же данные, что и Fiddler, но, как я уже сказал, мы не можем воспроизвести их там.

Я был бы очень признателен за любые идеи, которые могут быть у кого-либо ...

7
задан Mark Richman 24 August 2011 в 02:10
поделиться