会话变量通常保留在Web服务器RAM内存中.
在集群中,由客户端发出的每个请求都可以由不同的集群节点处理.对?!
所以,在这种情况下…
>会话变量会发生什么?它们不是存储在节点RAM内存中吗?
>如果没有我的会话变量,其他节点如何正确处理我的请求,或者至少全部?
>此问题由Web服务器(Apache,IIS)或语言运行时(PHP,ASP.NET,Ruby,JSP)处理?
编辑:有没有一些经典ASP的解决方案?
解决方法
在ASP.NET中存储会话状态有三种方式.第一个正在进行,变量存储在内存中.第二个是使用会话状态服务,将以下内容放在您的web.config文件中:
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20" />
在stateConnectionString属性中可以看到,会话状态服务可以位于不同的计算机上.
第三个选项是使用集中式的sql数据库.为此,您将以下内容放在web.config中:
<sessionState mode="sqlServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString= "data source=SERVERHAME;user id=sa;password=" cookieless="false" timeout="20" />
所有这些选项的更多细节都写在这里:http://www.ondotnet.com/pub/a/dotnet/2003/03/24/sessionstate.html