Назад | Перейти на главную страницу

Варианты обработки сессий в IIS

Какие есть варианты обработки сеанса в современной веб-архитектуре .NET IIS?

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

Я пытаюсь создать высокодоступную платформу .NET IIS, которая горизонтально масштабируется для стороннего приложения. Приложение разработано сторонней организацией, и хотя я могу настаивать на сохранении в базе данных, это будет невозможно в ближайший срок.

Третья сторона рекомендует использовать постоянные сеансы, чего я избегаю. Прикрепленные сеансы уменьшат доступность, поскольку, когда веб-сервер становится недоступным, это вызовет проблемы с доступом для клиентов, которые ранее его использовали. Более того, это снижает функциональность балансировки нагрузки, поскольку один сервер может получать потенциально больше запросов, чем другие. IIS все равно будет терять сеансы после перезапуска, что я бы предпочел устранить. Я также не хочу сохранять сеанс в cookie на стороне клиента.

Я хочу обеспечить полную высокую доступность, но при этом разрешить развертывание приложений для простаивающих серверов без каких-либо последствий. Дополнительно полная балансировка нагрузки. Могу ли я включить эту функцию на этой технологической платформе без перезаписи приложения? Какие у меня есть варианты?

ASP.net 2.0 и выше поддерживает сохранение сеанса на сервере SQL просто путем изменения поставщика SessionState в web.config и использования aspnet_regsql.exe для настройки базы данных SQL. Вы можете узнать больше о настройке поставщика состояния сеанса на странице MSDN - поставщики состояния сеанса страница.

Обновление: гораздо более легкое чтение с пошаговыми инструкциями также доступно на MSDN - Режимы состояния сеанса страница.

Мы говорили о модульности поставщиков состояния сеанса .NET на фестивале Linux в Огайо, и я упомянул, что кто-то может создать распределенный кеш в памяти для состояния сеанса .NET. Заказчик спросил меня об этом сегодня утром, и я нашел этот продукт кажется, именно это и делает.