仓酷云

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

[学习教程] ASP网站制作之负载均衡情况下的SESSION办理

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:45:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
帮助用户快速实现各种应用服务,ASP商有整合各方面资源的能力,可在短期内为用户提供所需的解决方案。例如,典型的ERP安装,如果要在客户端安装的话需要半年到二年的时间,但是美国的一些ASP商如USI和CORIO能在90—120天内提供ERP应用方案。session|session创立交互式web页面时最年夜的应战之一是保持用户的形态,一个站点大概想记着你是谁、在n页之前你点击了甚么、在这最初一次做了些甚么、如今即刻要向你显现甚么。完成这些功效的路子有很多,如查询字符串、提交表单或cookies,最壮大的一种是ASP的Session工具。
原文出处:http://www.asptoday.com/articles/20000118.htm当用户第一次抵达某站点,他/她被赐与一个HTTPcookie格局的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,_CustomerEmailfromTblSessionwhereSessionID="&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组件,就是能够处置这些
插件的。

仅当web局限内的第一次点击举行负载均衡
这类办法也称为前端负载均衡,它易于形貌,可是有大概不适于实行。为了完成真实的负载均衡,每次
哀求都要从头均衡用户。可是在年夜多半情形下,前端负载均衡就已充足满意年夜部分这类服务器保护的
撑持者了。

要完成这个目标,就只同意在局限内的第一次点击经由过程负载均衡器。每一个增添的页面负载都将用户坚持
在统一个服务器上。这就好像在代码中利用绝对路径而不是相对路径一样复杂。

<Formaction="http://www.myserver.com/mypage.asp"method=post>

&nbsp</p>想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的
柔情似水 该用户已被删除
沙发
发表于 2015-1-19 06:29:44 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
精灵巫婆 该用户已被删除
板凳
发表于 2015-1-24 09:59:48 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
若相依 该用户已被删除
地板
发表于 2015-1-31 23:49:28 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
小魔女 该用户已被删除
5#
发表于 2015-2-7 01:18:00 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
冷月葬花魂 该用户已被删除
6#
发表于 2015-2-19 07:30:56 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
小妖女 该用户已被删除
7#
发表于 2015-3-6 13:52:56 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
乐观 该用户已被删除
8#
发表于 2015-3-20 08:44:58 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 11:37

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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