Внутрипроцессный сеанс (по крайней мере, при использовании IIS6) может перезапускаться в любое время, и поэтому он не очень надежен, потому что сеансы завершатся, когда сервер примет решение, а не когда истечет время ожидания сеанса.Сессии также истекают при развертывании новой версии веб-сайта, что не относится к поставщикам сеансов на основе сервера.Это может привести к плохой работе ваших пользователей, если вы обновляете их в середине сеанса.
Использование сервера Sql - лучший вариант, потому что возможны сеансы с неограниченным сроком действия.Однако необходимо учитывать стоимость сервера, места на диске, его обслуживания и производительности.Я использовал его в своем приложении для электронной коммерции в течение нескольких лет, пока мы не сменили поставщиков на одного с очень небольшим пространством базы данных.Было обидно, что это должно было пойти.
Мы используем государственную службу около 3 лет, и у нас не было никаких проблем.Тем не менее, у нас теперь установлен тайм-аут сеанса в электронной коммерции, равный одному часу, что, вероятно, стоило нам некоторого бизнеса по сравнению с моделью с неограниченным сроком действия.
Когда я работал в крупной компании, мы использовали кластерный SQLСервер в другом приложении, которое было более важным, чтобы оставаться в сети.У нас было многократное резервирование в каждой части системы, включая сетевые карты.Имейте в виду, что добавление сервера состояний или службы добавляет потенциальную единственную точку отказа для приложения, если только вы не идете по кластерному маршруту, который обходится дороже.
Была также проблема, когда мы впервые переключилиськ подходу на основе SQL, где двоичные объекты не могут быть сериализованы в состояние сеанса.У меня их было всего несколько, и я изменил код, чтобы он не нуждался в двоичной сериализации, чтобы я мог получить сайт в Интернете.Однако, когда я вернулся, чтобы исправить проблему сериализации несколько недель спустя, она внезапно перестала существовать.Я предполагаю, что это было исправлено в Центре обновления Windows.