Модуль пользовательского состояния сеанса - использование службы состояний ASP

РЕДАКТИРОВАТЬ (уточняя мой вопрос): есть ли API или метод, с помощью которого мы можем использовать Out-Process Asp.NET State Service из нашего собственного кода, или это проприетарный?

Мы рассматриваем реализацию пользовательского модуля состояния сеанса, который повторно использует компоненты модуля, поставляемого вместе с asp. Наша главная цель - просто предотвратить блокировку сеанса (без изменения режима состояния сеанса на ReadOnly). Это возможно?

Один из ключевых моментов, который мы хотели бы сделать, - это возможность использовать тот же поставщик хранения вне сеанса (служба ASP State), который используется внутри.NET, поскольку у нас есть среда с балансировкой нагрузки, которая не ' Не используйте липкие сессии.

Я копался в коде в справочном источнике, и мои выводы приведены ниже. Я надеюсь, что у кого-то есть другая утилита, которая потенциально может быть использована для интеграции пользовательского модуля состояния сеанса ASP State Service.


Модуль сеанса по умолчанию System.Web.SessionState.SessionStateModule, Это Sealed учебный класс. Этот класс является единственным классом, который использует SessionStateMode.StateServer значение enum (которое указывается в веб-конфигурации).

Когда этот флаг установлен, модуль устанавливает _store переменная, чтобы быть новым System.Web.SessionState.OutOfProcSessionStateStore который является Friend Sealed учебный класс.

Первоначально у меня было несколько мыслей о том, как это сделать, и из-за модификаторов в классах выше я не смог этого сделать. Есть ли другие подходы, которые могут быть приняты?

  1. Создать новый System.Web.SessionState.SessionStateModule и ссылаться на _store переменная. Это не сработало, очевидно, потому что _store переменная является частной.
  2. Я пытался создать класс, который наследует от System.Web.SessionState.SessionStateModule но очевидно, так как это sealed это не работает.
  3. Посмотрел на копирование кода из кода.NET framework. Понял, что это будет очень плохое решение.

Есть ли варианты, которые мне не хватает?

1 ответ

Я бы порекомендовал вам прочитать эту тему: я только что обнаружил, почему все сайты ASP.Net работают медленно, и я пытаюсь понять, что с этим делать.

Он предоставляет некоторые отправные точки и информацию по теме сеанса, особенно проблему блокировки.

Если вы ищете пользовательскую реализацию модуля сеанса, вы можете посмотреть здесь: http://www.codeproject.com/Articles/11712/Custom-session-state-management-in-ASP-NET

Другие вопросы по тегам