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

2024-04-13

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

哎呀。我正在构建一个网络应用程序,该应用程序使用并依赖于在会话中存储字典。现在我知道使用会话时字典的序列化存在一些问题,但使用 InProc 会话时,没有序列化,所以我想我会没事的。但现在我想知道:当我去托管我的申请时,我会遇到什么令人讨厌的惊喜吗?

Thanks.


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

But,如果您有不止一台服务器(网络场),甚至同一台服务器上有多个进程为您的网站(网络园)提供服务,进程内将无法工作unless您使用粘性会话:您的负载均衡器需要配置为在会话启动后将请求发送到同一服务器。

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

然而,一般来说,对进程内会话或仅限于进程边界的状态的任何依赖都被认为是糟糕的设计,并且强烈建议不要这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

服务器场中的 InProc 会话使用情况 的相关文章

随机推荐