加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET – 从客户端访问两次网页

发布时间:2020-12-16 00:01:05 所属栏目:asp.Net 来源:网络整理
导读:如果一个用户在第一个页面返回到客户端之前尝试访问两次ASP.NET页面会发生什么?看看下面的代码: Partial Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load Sess
如果一个用户在第一个页面返回到客户端之前尝试访问两次ASP.NET页面会发生什么?看看下面的代码:
Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load
        Session("ID") = 1
    End Sub

    Protected Sub Button1_Click(ByVal sender As Object,ByVal e As System.EventArgs) Handles Button1.Click
        Response.Redirect("Default3.aspx")
    End Sub End Class

Partial Class Default2
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load
        Session("ID") = 2
    End Sub

    Protected Sub Button1_Click(ByVal sender As Object,ByVal e As System.EventArgs) Handles Button1.Click
        Response.Redirect("Default3.aspx")
    End Sub
End Class

Imports System.Threading
Partial Class Default3
    Inherits System.Web.UI.Page

    Dim intTest As Integer = 0

    Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load
        For intTest = 0 To 10
            Response.Write(Session("ID") & " " & intTest & "<br>")
            Thread.Sleep(1000)
        Next
    End Sub
End Class

从default.aspx(通过单击按钮)和default2.aspx(通过单击按钮)同时访问同一客户端(PC)的default3.axpx会导致会话变量在两个请求上都相同(尽管我将变量设置为1第一个请求和第二个请求2.是否有可能在没有线程的情况下复制此行为?我相信我在一个不使用线程的asp.net应用程序中有这个bug.

解决方法

你的问题不是关于多线程的;它是关于SessionState的.

ASP.NET运行时使用lock to avoid overriding same session variables虽然它可以处理多个请求.

这就是为什么你没有看到错过匹配的结果.

还请看 –

ASP.NET Application and Page Life Cycle

ASP.NET Application Life Cycle Overview

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读