Модуль пользовательского состояния сеанса - использование службы состояний 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
учебный класс.
Первоначально у меня было несколько мыслей о том, как это сделать, и из-за модификаторов в классах выше я не смог этого сделать. Есть ли другие подходы, которые могут быть приняты?
- Создать новый
System.Web.SessionState.SessionStateModule
и ссылаться на_store
переменная. Это не сработало, очевидно, потому что_store
переменная является частной. - Я пытался создать класс, который наследует от
System.Web.SessionState.SessionStateModule
но очевидно, так как этоsealed
это не работает. - Посмотрел на копирование кода из кода.NET framework. Понял, что это будет очень плохое решение.
Есть ли варианты, которые мне не хватает?
1 ответ
Я бы порекомендовал вам прочитать эту тему: я только что обнаружил, почему все сайты ASP.Net работают медленно, и я пытаюсь понять, что с этим делать.
Он предоставляет некоторые отправные точки и информацию по теме сеанса, особенно проблему блокировки.
Если вы ищете пользовательскую реализацию модуля сеанса, вы можете посмотреть здесь: http://www.codeproject.com/Articles/11712/Custom-session-state-management-in-ASP-NET