主题:  ASP.net中的Session_start和End事件问题

dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#12004/9/27 10:06:24
ASP.net中的Session_start和End事件问题:

假如用户只打开一页,当用户关闭浏览器(该页)时,Session_end事件为何不执行?难道用户关闭浏览器窗口时,SESSION并不END?

测试过程如下:
'Global.asax.vb中:
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' 在应用程序启动时激发
        Application("n") = 0
    End Sub

    Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' 在会话启动时激发

        Application.Lock()
        Application("n") += 1
        Application.UnLock()

    End Sub

Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
        ' 在会话结束时激发

Application.Lock()
        Application("n") -=1
        Application.UnLock()
    End Sub


'webform1中的代码:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码
        Label1.Text = Application("n")
    End Sub


测试情况:
Webform1.aspx运行时,会在页面上显示Label1.Text ,每启动一个浏览器查看该文件则Label1.Text会从1开始递增1(正常)。

但每关闭一个网页,Label1.Text却没减1(刷新打开的网页无变化),用户关闭浏览器时Session_End事件怎么会不执行?错在什么地方啊?高人请指点一下啊,谢谢。。。

编辑历史:[此帖最近一次被 dreamexpress 编辑过(编辑时间:2004-09-27 10:11:59)]


dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#22004/9/27 10:33:52
Session_End中的代码什么时候被执行?难道永远不执行吗?

是IIS设置还是应用程序的配置有问题??



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#32004/9/27 15:16:41
Session在一定时内要中止的,默认生命周期是20分钟。可以用
Session.TimeOut = 10设置周期。


非常大鱼