Классические приложения ASP на IIS закрываются, когда использование памяти превышает 90%
У меня есть проблема, где все классические ASP
приложения на IIS
завершите работу, когда переполненный сервер превышает 90% использования памяти. Это потому что ASP
приложения больше не могут создавать новые сессии.
ASP.NET
приложения не подвержены этой проблеме и работают нормально.
Есть ли какое-либо решение этой проблемы (ожидать добавления оперативной памяти на сервер)?
1 ответ
Если вы не хотите увеличивать объем оперативной памяти, рассмотрите возможность управления памятью для сеансов в приложении asp.
В большинстве случаев не всем посетителям сайта необходим сеанс, связанный с ними. Во многих случаях, когда я захожу на сайт, мне не нужно, чтобы он меня запомнил, когда я просматриваю сайт. Если в вашем коде вы избежали какого-либо специфического поведения сеанса, такого как установка переменной сеанса или получение идентификатора сеанса, механизм ASP будет нормально проигрывать и уничтожать сеанс, который он создал для запроса, в конце запроса для вас.
Эта проблема возникла в одном из наших стресс-тестов, где мы наблюдали небольшое увеличение потребления памяти на некоторых страницах. На этих страницах мы устанавливали идентификатор локали для сеанса, используя <% Session.LCID = some_value%>. Я был озадачен, увидев, что удаление этой директивы со страницы положило конец увеличению, хотя на странице было больше кода сценария, на который, казалось, не повлияло то, что я тогда считал утечкой памяти. Оказывается, все, что мы делали, это изменяли состояние сеанса ASP, что, в свою очередь, заставляло механизм ASP поддерживать сеанс в отличие от других страниц, которые не имели кода, изменяющего сеанс.