ASP.NET会话状态服务器与InProc会话

时间:2009-09-16 08:48:58

标签: asp.net session session-state-server

运行会话状态服务器而不是InProc会对开销性能造成什么影响?这很重要吗?我知道您可以使用状态服务器重启w3wp并保留所有会话状态 - 这是唯一优于InProc的优势吗?

2 个答案:

答案 0 :(得分:10)

这取决于您的部署计划:在单个服务器上,惩罚很小,但好处同样有限:您的会话状态在流程回收中存活(如上所述),但这就是它。您将使用StateServer模式进行一些跨进程编组,因此期望一些额外的CPU加载,没有太多令人印象深刻。

在Web场/负载平衡设置中,除非您可以配置粘性会话/服务器关联,否则InProc将无法运行。请注意StateServer节点本身可能成为单点故障,因此请务必对此进行补偿。话虽如此,StateServer的延迟通常比使用SQLServer模式时更少(=更好)。

无论您在何处存储数据,请确保您的代码/网站正常处理丢失状态。

答案 1 :(得分:0)

如果您设置了负载平衡(不使用粘性会话),则无法使用InProc,因为(当然,根据您的负载平衡设置)您可能会在节点之间切换。

工作进程的回收(但当然与重新启动w3wp相同)也将在InProc中终止你的会话。