Где хранится сессия asp.net на сервере iis - PullRequest
1 голос
/ 17 августа 2011

Я хочу знать, где хранится сеанс, когда я устанавливаю его в приложении asp.net. Это потребляет оперативную память или место на жестком диске?
На самом деле, я сохраняю данные в переменной сеанса. Я сохраняю его в сеансе, потому что вычисление таблицы данных занимает много времени. Чтобы не вычислять данные снова, я получаю их из сеанса.
Но мне любопытно время, когда данные станут намного больше, чем сейчас. Это застрянет на МКС?
Спасибо

Ответы [ 5 ]

2 голосов
/ 17 августа 2011

Состояние сеанса в ASP.NET по умолчанию хранится в памяти процесса (которая является ОЗУ).

Вы можете изменить это в web.config, изменив значения элемента configuration / system.web / sessionState:

<configuration>
  <system.web>
    <sessionState mode="...">
  </system.web>
</configuration>

Доступны следующие параметры:

  • InProc (по умолчанию)
  • StateServer - будет храниться в отдельном процессе, который может находиться на отдельном компьютере
  • Выкл.
  • SqlServer - будет хранить информацию о состоянии в базе данных сервера sql
  • Custom - позволяет вам предоставить собственное хранилище сеансов
1 голос
/ 17 августа 2011

Состояние сеанса может храниться в разных местах, которые вы можете выбрать. Вот хорошее объяснение на MSDN По умолчанию используется память на сервере, на котором выполняется ваше веб-приложение, поэтому, если ваш сеанс становится слишком большим, у вас действительно будут проблемы с оперативной памятью / подкачкой.

Но почему сеанс? Являются ли данные в датируемых данных для конкретного пользователя? В противном случае кэш будет более подходящим.

1 голос
/ 17 августа 2011

В зависимости от того, как вы конфигурируете Сеанс в вашем Web.Config, Сеанс может храниться в оперативной памяти, Asp.NET State Server, Sql Server.

По умолчанию сеанс хранится в памяти, что означает оперативную память.Если таблица данных становится большой и в ней одновременно участвует несколько пользователей, вы можете получить исключение.Зависит от того, сколько пользователей одновременно обращаются к системе, каков Ram в вашей системе и т. Д.

0 голосов
/ 17 августа 2011

Типичное состояние сеанса InProc сохраняется в памяти веб-сервера.

0 голосов
/ 17 августа 2011

Если вы используете InProc сеанс, то он будет сохранен в памяти.Так что, если у вас достаточно памяти, она будет в памяти.Как только вы достигнете своего предела, с нетерпением ждем, когда он перейдет на диск.

Вы также можете использовать хранилище сеансов вне процесса, как SQL-сервер.Это настраивается в web.config.Обратите внимание, что для этого вам необходимо настроить базу данных.Вы также можете проверить MSDN на read в типах хранилищ.

Старая ссылка выше, но все еще частично полезна.Еще один быстрый взгляд, и я нашел лучшую ссылку , которая более детально описана.

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