这似乎微不足道,但我以前从来没有担心过,而且我的谷歌技能让我失望了。ASP.NET/IIS6的进程内会话存储桶的影响有多大,从某种意义上说,您可以调用 Session["whatever"] 并返回相同的值?显然它不能跨越不同的服务器或应用程序池(我认为)。同一个应用程序池中的不同网站呢?这两个可以看到对方的用户会话变量吗?两个不同的虚拟目录都有自己的 web.config 呢?
谢谢!
AFAIK进程内会话具有 AppDomain 范围,因此不,在同一个池中运行的两个 Web 应用程序不能共享进程内会话。实际上,名称“in-AppDomain”会更合适。
显然它不能跨越不同的服务器
你当然可以。 此 MSDN 文章有更多详细信息。
如果 asp.net 会话存储在数据库中,它可以跨越服务器场中的服务器。
出于安全原因,会话范围严格在一个应用程序域内
听起来您最好存储数据库值而不是将其存储在 In-Proc session[""] 中。如果您有状态服务器,则可以在使用相同状态服务器的所有机器上访问会话。In-Proc 就是它所说的。它存储在那台计算机的进程中。
如果您想在具有 SQL Server 后端的应用程序之间共享 Session,有一篇文章介绍了如何做到这一点。