加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

负载平衡环境下的ASP会话管理 - ASP教程

发布时间:2016-08-09 18:59:05 所属栏目:Asp教程 来源:站长网
导读:创建交互式web 页面时最大的挑战之一是维持用户的状态,一个站点也许想记住你是谁、在n页之前你点击了什么、在这最后一次做了些什么、现在马上要向你显示什么。
创建交互式web 页面时最大的挑战之一是维持用户的状态,一个站点也许想记住你是谁、在n页之前你点击了什么、在这最后一次做了些什么、现在马上要向你显示什么。实现这些功能的途径有许多,如查询字符串、提交表单或cookies,最强大的一种是ASP的Session 对象。

原文出处:http://www.asptoday.com/articles/20000118.htm   当用户第一次到达某站点,他/她被给予一个HTTP cookie格式的SessionID (是一个只读属性,为每个用户返回session 识别号)。然后服务器可以在session 集合中跟踪一整群的变量,通过与用户的session cookie相匹配来保持每个用户有一个特定变量。只要用户在服务器上保持活跃,session 变量就维持它的状态。一个session 变量的默认有效时间是20分钟,或者是每当用户关闭浏览器,这时无论session_OnEnd 部分是什么内容,global.asa 文件都运行。

以上陈述的关键是“在服务器上保持激活状态”。每个session变量都在网络服务器上设置,并保持在本地内存中。所以,如果你在一个web 范围内使用负载平衡怎么办?(负载平衡的介绍请见msdn 文章 ‘ASP and Web Session Management’)。对真正的负载平衡来说,每当居住于服务器上的用户点击一个连接时,它就改变服务器的状态,每当浏览一个新页面时都潜在地丢失他们的session 信息。

如果你发现自己是在这样的环境下编写代码--或者你怀疑你的站点最终是负载平衡的--你有4种方法来解决这个问题。

○ 完全不使用session 。

○ 使用临时cookies 。

○ 购买第三方组件来处理session 管理。

○ 仅对web 范围内的第一次点击进行负载平衡。

本文将讨论这四种选择,并解释它们分别在何时何地最适用。

根本不使用sessions

显然,饶过sessions 管理这个问题的一个途径就是根本不使用sessions 变量。但是你仍然受困于状态保持的问题。你可以使用最简单的方法跟踪用户,而不用写客户机。

一种不安全的方法是使用浏览器查询字符串,或用隐藏值进行表单置入,以使用户保持活跃状态。

这将允许你给他们一个用户id,并将变量存储在一个所有的web服务器都能到达的地方。比如说我保持了变量 ShipToZipCode、 TypeOfCustomer和 CustomerEmail。可以这样写:

< form action="/nextpage.asp" method="post" >
Item Number: < input type=text name="ItemNumber" >< br >
Quantity: < input type=text name="Quantity" >< br >
Unit Cost:< input type=text name="UnitCost" >< br >
< input type=hidden value="ABXXXKJR8JSDFI12KJIL2H75CX45X2" name="sessionid" >
< input type=submit value="post form" >
< /form >

然后,在 nextpage.asp上, 可以做以下工作:

Set conn=Server.CreateObject(ADODB.Connection)
Set SessionRS = conn.execute("Select ShipToZipCode, TypeOfCustomer, _ CustomerEmail from TblSession where
SessionID =" & request.form("sessionid"))
ShipToZipCode = SesssionRs("ShipToZipCode")
TypeOfCustomer = SesssionRs("TypeOfCustomer")
CustomerEmail = SesssionRs("CustomerEmail")

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读