В большинстве случаев, когда что-то тормозит или вылетает, компьютер пользователя ни при чем. К сожалению, приложение АИС Архива спроектировано не очень хорошо и имеет ряд существенных недостатков:
1. Плохая работа с памятью. Из-за АИС Архива на сервере происходит утечка памяти. Процесс постоянно растет в размере, даже когда количество работающих пользователей минимально. Со временем выедается вся оперативная память. Из-за этого пришлось поставить ограничение на максимальное потребление оперативной памяти в 24 Гб, после чего процесс перезапускается и у всех работающих в этот момент случается вылет.
2. Работа в один поток. Задачи от всех пользователей, работающих в данный момент с системой, выполняются по очереди. И когда у кого-то что-то зависает, например, при попытке открыть полную тематическую базу, работа тормозится у всех. Если зависло совсем надолго, больше чем на минуту, то почти точно у работающих в данный момент случится вылет.
3. Хранение информации о сессиях в оперативной памяти в серверном процессе. Когда происходит событие из п.1, то все, что вы делали, стирается из оперативной памяти, происходит вылет.
В нормальных приложениях это решается следующим образом:
- увеличивается максимальное число рабочих процессов, чтобы несколько задач могли выполняться параллельно;
- использовать для управления состоянием не серверный процесс в оперативной памяти, а, например, базу данных.
Вот только проблема в том, что, когда я настраиваю эти параметры, перестает работать поиск и переход между разделами. И как это исправить, непонятно. Если вдруг у кого-то есть знакомые веб-программисты, знакомые с платформой ASP.NET и которые могут что-то подсказать, буду только рад