Наши пользователи устаревшего веб-приложения, написанного на ASP.net 2.0, испытывают замедление после использования приложения в течение некоторого времени (через 2 часа или около того).Например, нажатие кнопки для выполнения некоторых вычислений и обновления панели обновления ajax занимает несколько секунд, в то время как это почти мгновенно, когда они только что вошли в систему.
Если они выходят из системы и снова входят в веб-приложение, оновернуться к нормальной скорости снова, каждый раз, когда они делают.Замедление для конкретного пользователя, а не глобальное.Он может быстро работать для пользователя и замедляться для пользователя, находящегося рядом с ним.
Я посмотрел на сервер IIS, и на нем достаточно свободной памяти, а загрузка ЦП почти всегда ниже 10%.В настоящее время этим веб-приложением пользуются только дюжина пользователей, поэтому масштабируемость не должна быть проблемой.
Единственное, что я могу думать о том, что на меня могут повлиять выходы из системы, - это состояние сеанса.Я уже посмотрел ViewState тоже, и это «всего» 18 КБ на самых медленных, которые не должны быть узким местом, тем более, что они находятся в одной гигабитной локальной сети, а не удаленно.Это не меньше, когда приложения работают быстро.Если посмотреть на состояние сеанса в коде, он используется не очень часто, и большие объекты не сохраняются.Согласно моим тестам, он не увеличился больше, чем на 10 элементов и 500 байт за несколько минут.Даже если произошла утечка, сервер должен быть в состоянии справиться с этим, учитывая объемы памяти, которую он имеет (4 ГБ, но только с использованием 300 МБ).
Я очистил временные файлы и, похоже, он неиметь какое-то существенное значение.
Как вы думаете, эти замедления могут быть вызваны чем-то иным, чем состояние сеанса, учитывая, что выход из системы и возврат к ней возвращает скорость к норме?Если нет, есть ли какой-либо инструмент, который вы бы предложили профилировать в сеансном состоянии, или параметр в IIS, который я должен попытаться изменить?