您当前的位置: 首页 > 

编程乐趣

暂无认证

  • 1浏览

    0关注

    117博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

统计网站的在线人数

编程乐趣 发布时间:2009-07-10 21:22:00 ,浏览量:1

第一步: 先在系统中创建一个表,这个表用来存储每个用户的ip.

在Application_Start中添加以下代码。

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)        ' 在应用程序启动时运行的代码        Dim dt As DataTable = New DataTable()        dt.Columns.Add("UIP", GetType(String))        Dim pk(1) As DataColumn        pk(0) = dt.Columns("UIP")        dt.PrimaryKey = pk         Application("DT") = dt

 

        dim count as integer=0

        Application("count")=count End Sub

第二步:

 Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)        ' 在新会话启动时运行的代码

        Dim ip As String = Request.ServerVariables("REMOTE_ADDR").ToString  '获取客户端IP地址        Dim dt As DataTable = Application("DT")       If dt.Rows.Contains(uid) Then              Application.Lock()              Dim Row As DataRow = dt.NewRow()              Row("UIP") = uid              dt.Rows.Add(Row)              Application.Set("DT", dt)

            

             dim count  as integer=Application("count")

             count+=1

             Application.set("count",count)             Application.UnLock()       End If

End Sub

第三步:

 Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)        Application.Lock()        Dim ip As String = Request.ServerVariables("REMOTE_ADDR").ToString          Try            Dim i As Integer            Dim dt As DataTable = Application("DT")

            Dim len as integer=dt.Rows.Count - 1            For  i = 0  To  len

           Dim row As DataRow = dt.Rows(i)                If row("UIP").ToString.Equals(ip) Then                    dt.Rows.Remove(row)                    Exit For                End If            Next            Application.Set("DT", dt)

 

             dim count  as integer=Application("count")

             count-=1

             Application.set("count",count)            Application.UnLock()        Catch ex As Exception        End Try    End Sub

最后要在web.config文件中设置

 sessionstate 模式设置为 ' InProc ',因为只有设置为InProc才会触发Session_End

关注
打赏
1665230491
查看更多评论
立即登录/注册

微信扫码登录

0.0349s