ASP.NET в состоянии сеанса Proc - PullRequest
1 голос
/ 07 февраля 2012

У нас есть веб-приложение MVC, которое использует FormsAuthentication, а также хранит несколько переменных в переменных Session. В последнее время мы сталкивались с несколькими ситуациями, когда переменные сеанса терялись, но пользователь все еще входил в систему. Быстрый Google привел меня к нескольким SO статьям, в которых упоминалось, что In Proc Session State регулярно теряется и что, если мы требуем его сохранения , мы должны рассмотреть возможность перехода к решению In Inc.

Исходя из классического ASP-фона, где мы полагались на состояние сеанса в течение всего времени сеанса, кажется немного странным, что я теперь не могу на него полностью положиться. Разумеется, в Proc Session State ни для кого не имеет значения, может ли он быть потерян без промедления? Я что-то упустил?

Я понимаю, что хранение его на сервере SQL имеет свои преимущества, но для небольших веб-приложений с небольшим трафиком In Proc - идеальное решение, на которое можно положиться.

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

ASP.NET Состояние сеанса может выполняться в отдельном процессе от хост-процесса ASP.NET. Если состояние сеанса находится в отдельном процессе, процесс ASP.NET может приходить и уходить, пока процесс состояния сеанса остается доступным. Конечно, вы все еще можете использовать состояние сеанса в процессе, аналогичном классическому ASP, тоже.

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

Вы можете узнать больше о том, как настроить вне процесса состояние сеанса в http://msdn.microsoft.com/en-us/library/ms972429.aspx

1 голос
/ 07 февраля 2012

Насколько я знаю, состояние сессий in-proc теряется после перекомпиляции приложения и повторного использования пула приложений. Пул приложений может быть переработан, если не хватает памяти или интервал регулярного перезапуска.

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