在我当前的asp.net
应用程序中,我将session variables
存储在SQL server
中。如果指定InProc
,则会话将保留在服务器内存中,但对于out of proc
(在我的情况下),会话将保留在SQL Server中。
这是真的吗?根据我的阅读,每个需要会话访问的请求(基本上每个页面请求)都会从db反序列化会话,并在请求完成后将其保存回来。这意味着一旦它被检索,这些值将保留在Web服务器上。这与InProc
那么有什么不同?
对于Out of Proc
,它是否仅在请求时检索一个会话变量?否则,它听起来像InProc
一样。我错过了什么。
答案 0 :(得分:4)
这是真的吗?
是的,这是真的。
根据我的阅读,每个需要会话访问权限的请求 (基本上每个页面请求)将从db反序列化会话 并在请求完成后将其保存。这意味着 一旦它被检索,它将保留在Web服务器上。怎么 这与InProc有什么不同呢?
值仅在HTTP请求期间存储在内存中。在请求开始时,它们从SQL Server加载,并在请求结束时将它们保存到SQL Server中。这与InProc不同,InProc的值在请求之间保存在内存中。并且,由于服务器场中的不同节点可以提供不同的请求(来自同一用户),因此使用SQL Server可以保证服务器场中的所有节点共享相同的会话值。