服务器场中的InProc会话使用情况

时间:2011-01-31 23:05:42

标签: asp.net

我正在阅读ASP.NET 4 Unleashed,我来到了这句话。 “当会话状态存储在进程中时,它存储在特定的Web服务器上。换句话说,您不能将进程内的会话状态与Web场一起使用。”

糟糕!我正在构建一个使用并依赖于在会话中存储词典的Web应用程序。现在我知道在使用会话时序列化字典存在一些问题,但是使用InProc会话时,没有序列化,所以我认为我没问题。但现在我想知道:当我去托管申请时,我会有任何令人讨厌的惊喜吗?

感谢。

1 个答案:

答案 0 :(得分:5)

首先,如果您的应用程序在单个服务器上运行(并且可能在共享主机上运行),则进程内会话正常,可能是唯一的方法。

,如果您有多个服务器(网络服务器场),或者在服务于您的网站(网络花园)的同一台服务器上甚至多个进程将无法正常工作除非您使用粘性会话:您的负载均衡器需要配置为在会话启动后将请求发送到同一服务器。

不要担心字典序列化,会话处理必须能够对其进行排序,无论是状态服务器还是SQL Server。

但是,一般情况下,任何依赖于进程内会话或状态仅限于流程边界的行为都被认为是糟糕的设计,并且非常不鼓励。