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

fre*_*hie 4 asp.net

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

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

谢谢.

Ali*_*tad 5

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

但是,如果您在服务于您的网站(Web园)的同一服务器上有多个服务器(Web场)或甚至多个进程,则除非您使用粘性会话,否则进程中将无法运行:您的负载均衡器将需要配置为在会话启动后向同一服务器发送请求.

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

但是,一般而言,任何对进程内边界或状态的依赖仅限于过程边界被认为是不好的设计,并且非常不鼓励.