我最近在学习会话,到目前为止,我了解会话和cookie分别用于服务器端和客户端,以跟踪请求的状态。并且将在服务器上创建一些线程或实例来处理不同的请求,假设来自同一客户端的2个请求 A 和 B ,此客户端的会话已设置在请求 A 中主题1 ,请求 B 由另一个主题主题2 处理,显然请求< strong> B 可以从会话中获取信息。这意味着“会话”不存储在某个线程上,在这种情况下不存储在线程1 上,因为请求 B 也可以将信息存储在“会话”中。所以基于上面的场景,我的问题就出现了:
答案 0 :(得分:0)
会话数据可以是内存中(在服务器上),也可以是外部的。有关详细信息和选项,请参阅此处:https://msdn.microsoft.com/en-us/library/h6bb9cz9(VS.71).aspx。请注意,也可以自定义该机制,以便存储可以完全专有。
我从未听说过任何名为“会话库存”的内容。如果将此与ASP.NET的会话管理相关联,则与IIS应用程序池几乎没有关系。应用程序池管理您的应用程序,同时它在IIS中运行。您可以在此处找到更多信息:https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/applicationpools/
如果您的应用程序配置为将会话数据存储在内存中(这是默认设置),那么,当应用程序重新启动时,所有数据都将消失(以前发出这些会话ID的用户将无法识别重新开始)。因此,为了解决这个问题,我们通常喜欢使用外部会话存储。会话状态服务器是一个不错的选择,或者是数据库。它很容易配置。请参阅以下步骤:https://msdn.microsoft.com/en-us/library/ms178586.aspx
答案 1 :(得分:0)
简而言之! (我认为你在谈论Native会话。会话状态服务器都不是数据库会话)