【发布时间】:2012-07-25 13:27:56
【问题描述】:
我有一个 ASP.Net MVC 应用程序,它大量使用会话来保存状态(包括大型数据集合)。目前,它托管在单个 Web 服务器上。会话设置为默认的 InProc。
出现一个问题,即当许多用户在线时,某些用户的应用程序冻结。我猜这是因为 InProc 会话不能很好地扩展,并且进程可用的内存只有这么多。 (如果内存需求超过可用内存会发生什么 - 它会换出到磁盘吗?)
我想到了几个有助于提高可扩展性的解决方案。 (a) Sql server 会话状态; (b) 配置会话状态以使用 AppFabric 缓存。第一个选项看起来是个不错的解决方案,但它会影响性能并要求存储的项目可序列化。
如何在单个 Web 服务器也用作缓存主机的环境中配置会话状态以使用 AppFabric 缓存(又名 Velocity)?这与单服务器环境中的 InProc 有何不同?这会比 InProc 提供更多的可扩展性和可用内存,还是本质上具有相同的限制?
【问题讨论】:
标签: session-state appfabric inproc appfabric-cache