Миграция состояния сеанса ASP.NET - PullRequest
1 голос
/ 12 декабря 2008

Я надеялся, что кто-то сможет проверить мои предположения, прежде чем я порекомендую моему клиенту обновить пакет с 30 / месяц до хостинга 80 / месяц.

Сайт: Сайт является настраиваемым сайтом электронной коммерции ASP.NET. корзины покупок хранятся в сеансе inproc.

Проблема в такие напряженные сезоны, как сейчас, пользователи часто теряют свои корзины для покупок и информацию для входа в систему FormsAuthentication.

Решение Я хотел перенести сайт на использование состояния сеанса SQL Server. Я предполагаю, что клиенты теряют свои корзины для покупок, потому что сессии InProc перерабатывают чаще, чем их 20-минутный тайм-аут из-за нагрузки. Будет ли перемещение сеанса на SQL Server или сервер состояний сеансов позволять клиенту сохранять свои сеансы корзины покупок без их повторного использования? Если да, то могут ли у меня возникнут какие-либо проблемы, если я увеличу время ожидания сеанса до 40 или 60 минут

Ответы [ 3 ]

2 голосов
/ 12 декабря 2008

Использование состояния сеанса SQL означает, что сеансы должны выдерживать цикл IIS (но не цикл SQL Server, если используется сценарий по умолчанию, который создает базу данных сеансов в базе данных tempdb).

На веб-сайте Microsoft доступен сценарий, который создает постоянное состояние сеанса БД. Я бы рекомендовал использовать его вместо этого (см. здесь ).

Итак, чтобы в основном ответить на ваш вопрос. Да, состояние сеанса SQL поможет. Вы можете также рассмотреть возможность использования сервера состояний вне процесса для проверки вашей теории.

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

1 голос
/ 12 декабря 2008

Не могли бы вы просто добавить немного оперативной памяти в коробку? Это может помочь и, вероятно, будет дешевле и проще, чем перенос сеанса на SQL Server. Конечно, это был бы лишь временный промежуток, но если бы он сэкономил им 50 долларов в месяц в течение нескольких лет, это, вероятно, стоит.

Вы также можете проверить код, чтобы убедиться, что некоторые другие данные остаются в сеансе гораздо дольше, чем необходимо.

0 голосов
/ 12 декабря 2008

Предположения звучат разумно для меня. Возможно, вы захотите взглянуть на настройки в AppPool и попытаться выяснить, почему его переработка. Может быть, все, что вам нужно сделать, это изменить их (если вы можете).

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