Ограничение сеансов asp.net в IIS7 - PullRequest
3 голосов
/ 20 мая 2011

Есть ли способ ограничения количества сессий asp.net (в процессе) из IIS7? Я думаю в соответствии с существующей настройкой, которая позволяет это для классического аспа. По сути, мы хотим иметь возможность ограничить количество одновременных сеансов на сервере и, как только они достигнут, перенаправить другой трафик на страницу типа «мы заняты». В предыдущих системах (классический asp) мы сделали это, перенаправив ответ 503 на удерживающую страницу.

Я понимаю, что это потенциально может быть сделано из кода asp.net, но мониторинг начала и конца сеанса не идеален. Есть ли расширение для IIS, которое может ограничивать сеансы, или, может быть, гибкое, которое может использовать любой счетчик Perfmon?

Большое спасибо.

1 Ответ

1 голос
/ 20 мая 2011

Нет способа сделать это «из коробки», настроив какие-либо параметры конфигурации состояния сеанса.

Вы можете написать собственный провайдер, чтобы сделать это:

Реализация поставщика хранилища состояний сеанса
Пример поставщика хранилища состояний сеансов

В примере используется SQL, но вы можете изменить его, чтобы создать свой собственныйхранилище памяти.

Ограничение сеансов на уровне поставщика состояния сеанса может быть не лучшим способом решения этой проблемы.Проблема, с которой вы столкнетесь, заключается в том, что у вас есть сценарий, когда на вашем сайте максимально допустимое количество доступных сеансов, но при этом количество посетителей уменьшается.Поскольку существует тайм-аут состояния сеанса, будут неиспользованные экземпляры состояния сеанса, и до истечения времени ожидания этих сеансов вы не сможете принимать больше посетителей.Если для вашего тайм-аута установлено значение по умолчанию (20 минут) и 20 или 30 пользователей «уходят», то пройдет 20 минут, прежде чем вы сможете принимать новые сеансы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...