仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 452|回复: 8
打印 上一主题 下一主题

[学习教程] ASP教程之负载均衡情况下的ASP会话办理(1)

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:27:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。创立交互式web页面时最年夜的应战之一是保持用户的形态,一个站点大概想记着你是谁、在n页之前你点击了甚么、在这最
后一次做了些甚么、如今即刻要向你显现甚么。完成这些功效的路子有很多,如查询字符串、提交表单或cookies,最壮大
的一种是ASP的Session工具。
原文出处:http://www.asptoday.com/articles/20000118.htm当用户第一次抵达某站点,他/她被赐与一个HTTP
cookie格局的SessionID(是一个只读属性,
为每一个用户前往session辨认号)。然后服务器能够在session汇合中跟踪一整群的变量,经由过程
与用户的sessioncookie相婚配来坚持每一个用户有一个特定变量。只需用户在服务器上坚持活泼,
session变量就保持它的形态。一个session变量的默许无效工夫是20分钟,大概是每当用户封闭
扫瞄器,这时候不管session_OnEnd部分是甚么内容,global.asa文件都运转。


以上报告的关头是“在服务器上坚持激活形态”。每一个session变量都在收集服务器上设置,并坚持在
当地内存中。以是,假如你在一个web局限内利用负载均衡怎样办?(负载均衡的先容请见
msdn文章‘ASPandWebSessionManagement’)。对真实的负载均衡来讲,每当寓居于服务器
上的用户点击一个毗连时,它就改动服务器的形态,每当扫瞄一个新页面时都潜伏地丧失他们的
session信息。

假如你发明本人是在如许的情况下编写代码--大概你嫌疑你的站点终极是负载均衡的--你有4种办法
来办理这个成绩。

○完整不利用session。
○利用一时cookies。
○购置第三方组件来处置session办理。
○仅对web局限内的第一次点击举行负载均衡。

本文将会商这四种选择,并注释它们分离在什么时候何地最合用。

基本不利用sessions

明显,饶过sessions办理这个成绩的一个路子就是基本不利用sessions变量。可是你仍旧受困于
形态坚持的成绩。你可使用最复杂的办法跟踪用户,而不必写客户机。

一种不平安的办法是利用扫瞄器查询字符串,或用埋没值举行表单置进,以利用户坚持活泼形态。
这将同意你给他们一个用户id,并将变量存储在一个一切的web服务器都能抵达的中央。好比说
我坚持了变量ShipToZipCode、TypeOfCustomer和CustomerEmail。能够如许写:

<formaction="/nextpage.asp"method="post">
ItemNumber:<inputtype=textname="ItemNumber"><br>
Quantity:<inputtype=textname="Quantity"><br>
UnitCost:<inputtype=textname="UnitCost"><br>
<inputtype=hiddenvalue="ABXXXKJR8JSDFI12KJIL2H75CX45X2"name="sessionid">
<inputtype=submitvalue="postform">
</form>

然后,在nextpage.asp上,能够做以下事情:

Setconn=Server.CreateObject(ADODB.Connection)
SetSessionRS=conn.execute("SelectShipToZipCode,TypeOfCustomer,_CustomerEmailfromTblSessionwhere
SessionID="&request.form("sessionid"))
ShipToZipCode=SesssionRs("ShipToZipCode")
TypeOfCustomer=SesssionRs("TypeOfCustomer")
CustomerEmail=SesssionRs("CustomerEmail")

如许经由过程将一切的"session"信息存储在数据库中,可使这三个变量在每页上都坚持活泼。确保
用户id的值很难猜到,这很主要。当会见第一页时,将分派给用户的sessionID存储为用户名。当用户
分开这一页时能够思索扫除这个数据,无效地从头天生ASPsession工具。这能够手工完成,大概用
一个限时程序将数周以上的纪录删除。



利用一时Cookies

关于出格的非敏感数据,间接向客户机中写进信息是成心义的。好比说,假如我的站点只利用了一个
变量来跟踪用户的ZIP码来失掉用户在外地的交通纪录,那末以HTTPcookie的情势将用户的ZIP码
写进他们的呆板应当不会发生甚么伤害。由于你能够将cookie写成扫瞄器封闭时生效,就能够使它们
仿照一个session变量的功效,也能够使他们是耐久的,幸亏用户下一次会见时记着他。

用Request工具Cookie的值能够为服务器所用。哀求Cookie的值,然后将值带出去。以是在我们下面
的例子中,能够如许做:

ShipToZipCode=Request.Cookies("SessionCookie")("ShipToZipCode")
TypeOfCustomer=Request.Cookies("SessionCookie")("TypeOfCustomer")
CustomerEmail=Request.Cookies("SessionCookie")("CustomerEmail")

你不能不把这些安排在每一个页面的顶部,可是假如用户把三个cookies都设置了,那末每页都能够
存取和利用这些用户特定的变量。你还能够在一个cookie中设置三个变量,请看KenBaumbach的文章
CookieBasicswithASP,内里有设置变量的更多信息。

假如你以为用户大概在扫瞄器上使Cookie有效,这类办法就不合用。可是愈来愈多的站点请求利用
cookies,web用户也愈来愈纯熟了。有大概绝对很少的用户会使cookies有效,可是这要在实行
这一办法之行进行思索。
固然下面的办法一定能见效,可是它们减弱了ASP的功效,由于它限定了个中一个关头组件--Session
工具的利用。要制止由负载均衡招致的这类限定,持续利用sessions的一种办法是购置一个第三方
组件,能够比IIS更好地处置Session。

在本文中,我不想对照各类第三方组件的优弱点。可是我传闻有一个组件事情得挺好,是SoftArtisans
供应的,叫做SA-SessionPro。它利用NT文件体系存储用户的信息,全部收集局限内的服务器都能够
利用。别的第三方组件创立“session引擎”把收集服务器和session办理器分别。如许,每次用户
都能够被重定向到不异的session引擎,同时也对服务器自己的点击举行负载均衡。

另外一个可选择的第三方组件是Microsoft的成员服务器。它与Microsoft的站点服务器,它同意一个
站点处置形态保护之外的成绩。在BillPitzer的文章‘Movingyour"Anonymous"visitorsto
registeredstatususingSiteServerandMembershipDirectoryAuthentication’中有更多的
信息。

因为ASP已愈来愈成为企业级收集使用程序的选择,而负载均衡同样成为这些使用程序乐成的最年夜威逼,
在市场上会呈现愈来愈多的第三方组件。ASP自己就是服务器工具或ActiveX组件,就是能够处置这些
插件的。
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。
爱飞 该用户已被删除
沙发
发表于 2015-1-19 13:09:04 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
不帅 该用户已被删除
板凳
发表于 2015-1-24 18:20:36 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-2 11:48:38 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
简单生活 该用户已被删除
5#
发表于 2015-2-7 19:25:17 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
分手快乐 该用户已被删除
6#
发表于 2015-2-23 08:08:49 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
深爱那片海 该用户已被删除
7#
发表于 2015-3-7 06:18:59 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
老尸 该用户已被删除
8#
发表于 2015-3-14 14:16:27 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
admin 该用户已被删除
9#
发表于 2015-3-21 09:41:18 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 19:00

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表