Где сохраняются переменные сеанса? - PullRequest
34 голосов
/ 24 декабря 2010

Где именно сохраняются переменные сеанса? Печенье? Память сервера?

Опять же, где сохраняются переменные приложения?

Ответы [ 3 ]

44 голосов
/ 24 декабря 2010

Переменные, помещенные в Session, хранятся там, где сконфигурировано SessionStateProvider для их хранения.

По умолчанию SessionStateProvider используется так называемый сеанс In Process (InProc), и место его хранения находится в памяти сервера, внутри пространства рабочего процесса ASP.NET.

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

Переменные приложения хранятся в ApplicationState, который также хранится в области памяти рабочего процесса ASP.NET. В отличие от состояния сеанса, состояние приложения применяется ко всем пользователям и сеансам. Насколько мне известно, нет конфигурации для хранения ApplicationState в другом месте; если вам нужно хранить большое количество данных приложения, вы можете посмотреть ASP.NET Caching .

12 голосов
/ 24 декабря 2010

Переменные сеанса хранятся на Память сервера и диск как Переменные приложения .

Из Документация ASP.NET :

Состояние сеанса ASP.NET поддерживает несколько параметров хранения переменных сеанса.Каждый параметр определяется как тип режима состояния сеанса.Поведение по умолчанию - хранить переменные сеанса в пространстве памяти рабочего процесса ASP.NET.Однако вы также можете указать, что состояние сеанса должно храниться в отдельном процессе, в базе данных SQL Server или в пользовательском источнике данных.Если вы не хотите, чтобы состояние сеанса было включено для вашего приложения, вы можете установить режим сеанса на Выкл.

4 голосов
/ 24 декабря 2010

Для сеанса InProc переменные хранятся локально в памяти рабочего процесса ASP.NET. То же самое касается состояния приложения.

...