• личный кабинет

Использование сервера состояний (ASP.NET State Service)

Приложение ASP.NET может хранить переменные сессии разными способами. Режим работы конфигурируется из файла web.config (конфигурация приложения ASP.NET), который нужно разместить в корневой каталог сайта. Обычно этот файл создается при создании проекта ASP.NET с помощью средства разработки (Visual Studio и т.п).

В этом файле вы можете найти секцию

<sessionState mode="StateServer" ...

где mode - режим хранения переменных сессии.

В рабочем процессе ASP.NET (mode="InProc")

Плюсы:

  • Работает быстрее всего.
  • Объекты не обязательно должны быть сериализуемыми.

Минусы:

  • При перезапуске рабочего процесса ASP.NET параметры сессии теряются.

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

Если ваш сайт использует авторизацию через сессии или иным образом плотно зависит от сессий, этот режим работы может приводить к некорректной работе сайта.

В службе состояний (mode="StateServer")

Плюсы:

  • Переменные сессии не сбрасываются при перезапуске рабочего процесса ASP.NET.

Минусы:

  • Объекты, размещаемые в сессиях, должны быть сериализуемыми.

Мы рекомендуем этот режим работы, т.к. в таком случае работа ваших сессий не будет зависеть от внутренних деталей работы веб-сервера.

На каждом из наших серверов запущена служба состояний, строка соединения по умолчанию (stateConnectionString="tcpip=127.0.0.1:42424") подходит.