Приложение ASP.NET может хранить переменные сессии разными способами. Режим работы конфигурируется из файла web.config (конфигурация приложения ASP.NET), который нужно разместить в корневой каталог сайта. Обычно этот файл создается при создании проекта ASP.NET с помощью средства разработки (Visual Studio и т.п).
В этом файле вы можете найти секцию
<sessionState mode="StateServer" ...
где mode - режим хранения переменных сессии.
В рабочем процессе ASP.NET (mode="InProc")
Плюсы:
- Работает быстрее всего.
- Объекты не обязательно должны быть сериализуемыми.
Минусы:
- При перезапуске рабочего процесса ASP.NET / IIS6 параметры сессии теряются.
Перезапуск рабочего проесса - обычная периодическая процедура, которая не приводит к остановке сайта или отказу в обработке запросов. Её нельзя заметить. Но, однако, помните, что переменные сессии в этот момент будут обнуляться.
Если ваш сайт использует авторизацию через сессии или иным образом плотно зависит от сессий, этот режим работы может приводить к некорректной работе сайта.
В службе состояний (mode="StateServer")
Плюсы:
- Переменные сессии не сбрасываются при перезапуске рабочего процесса ASP.NET / IIS6.
Минусы:
- Объекты, размещаемые в сессиях, должны быть сериализуемыми.
Мы рекомендуем этот режим работы, т.к. в таком случае работа ваших сессий не будет зависеть от внутренних деталей работы веб-сервера.
На каждом из наших серверов запущена служба состояний, строка соединения по умолчанию (stateConnectionString="tcpip=127.0.0.1:42424") подходит.