谈asp.net会话状态(2)_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:ASP.NET MVC是怎样实现自己的视图引擎的
在ASP.net MVC的一个开源项目MvcContrib中,为我们提供了几个视图引擎,例如NVelocity, Brail, NHaml, XSLT。那么如果我们想在ASP.NET MVC中实现我们自己的一个视图引擎,我们应该要怎么做呢? 我们知道呈现视图是在Controller中通过传递视图名和数据到Rende

若要配置故障转移群集,请将 Web 服务器的 Web.config 文件中的 <machinekey> 元素设置为相同的值。

然后将 Web 服务器的 SQL 连接字符串设置为指向计算机上存储会话数据的 SQL Server 数据库。

五、会话状态的访问

你可以直接通过Session集合来实现对会话状态的访问。为了与 ASP 的早期版本兼容,还可以通过应用程序对象上的 Session.Contents 属性来实现对会话状态的访问。

下面的示例显示在第一个网页将两个值写入Session集合,然后再在第二个网页读取Session集合。注:此处省略了页代码。

第一个网页,将值写入Session集合

以下为引用的内容:


dim name as string = "a"
dim id as integer = "1"
session("name") = name
session("id") = id
第二个网页,从Session集合获取值
dim name as string = session("name")
dim id as integer = session("id")
'获取获取会话状态集合中的项数
dim i as integer = session.count

注意,在进程内模式,未发生真正的序列化和反序列化,所以对象作为各自类的活动实例存储在会话状态中。

而在进程外会话模式,因为使用了序列化和反序列化,所以你要根据情况对数据类型进行转换。

如对日期值执行序列化操作,日期应为 Int64 类型。

六、会话生存期管理事件

会话生存期管理事件有两个Session_OnStart事件和Session_OnEnd事件,你可以在Global.asax.VB文件中对它们进行设置

1、Session_OnStart事件

当从单个浏览器客户端连接到服务器上时,就会触发Session_OnStart事件,它标志着会话的开始,在此后的浏览过程中,将不在触发该事件,除非此次会话超时或被放弃。Session_OnStart 事件是设置会话期变量的最佳时机,因为在访问任何页之前都会先设置它们。

示例:下面的示例是比较常用到的统计在线人数的Session_OnStart 事件代码:

以下为引用的内容:

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
'当事件发生时,将在线用户的人数加1
Application("usercount") = Application("usercount") 1
End Sub

2、Session_OnEnd事件

Session_OnEnd 事件在会话被放弃或超时发生,它标志着事件的结束。但请注意,只有 InProc 模式支持该事件。你可以通过Web.config文件的<sessionState>节的timeout属性来指定超时时限,如果用户在该超时时限之内(以分钟为单位,默认是20分

钟)不刷新或请求网页,则该会话将终止。可以利用Session_OnEnd 事件做一些清理工作。

示例:下面的示例是比较常用到的统计在线人数的Session_OnEnd 事件代码:

以下为引用的内容:

Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
Application("usercount") = Application("usercount") - 1
End Sub

分享:浅谈ASP.NET中使用AJAX的简单方法
据我所知,这项技术最初是由Microsoft在1999年提出来的,也就是我们所熟知的使用远程调用(remote calls)的DHTML / JavaScript web应用程序.这项技术的核心就是通过浏览器发出一个异步的HTTP请求来调用服务端的网页或服务,在返回结果后,无需刷新就可以更

共2页上一页12下一页
来源:模板无忧//所属分类:.Net教程/更新时间:2009-06-26
相关.Net教程