Состояние сеанса InProc и AppFabric с одним веб-сервером

У меня есть приложение ASP.Net MVC, которое активно использует сеанс для сохранения состояния (, включая большие коллекции данных ). В настоящее время он размещен на одном веб-сервере. Для сеанса установлено значение по умолчанию InProc.

Возникает проблема, из-за которой приложение зависает для некоторых пользователей, когда многие пользователи находятся в сети. Я предполагаю, что это связано с тем, что сеанс InProc не слишком хорошо масштабируется, и для процесса доступно ограниченное количество памяти. (Что произойдет, если потребность в памяти превысит доступную память? -Выгружается ли она на диск?)

У меня есть несколько решений, которые помогут с масштабируемостью. (a )Состояние сеанса сервера Sql; (b )Настройте состояние сеанса для использования кэширования AppFabric. Первый вариант выглядит как хорошее решение, за исключением того, что он повлияет на производительность и потребует сериализации сохраненных элементов.

Как насчет настройки состояния сеанса для использования кэширования AppFabric (, также известного как Velocity ), в среде, где один веб-сервер также используется в качестве узла кэширования? Чем это отличается от InProc в этой среде с одним сервером -? Обеспечит ли это большую масштабируемость и доступную память, чем InProc, или это по существу приведет к тем же ограничениям?

9
задан SliverNinja - MSFT 31 July 2012 в 20:50
поделиться