我知道ASP.NET使用工作線程爲請求提供服務。因此,客戶端A和客戶端B可以發出請求,同時處理這些請求。ASP.NET - 針對同一客戶端的多個工作線程
客戶端是否可以同時發出多個請求。請參閱下面的代碼:
Imports System.Threading
Partial Class Default5
Inherits System.Web.UI.Page
Dim intCount1 As Integer, intCount2 As Integer
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'If Session("Test") = "" Then
Session("Test") = Request.QueryString("ID")
'End If
Response.Write(Session("Test"))
End Sub
End Class
Imports System.Threading
Partial Class Default4
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Session("Test") <> "" Then
For intCount1 = 0 To 10
Response.Write(Session("Test") & "," & intCount1 & "<br>")
Thread.Sleep(1000)
Next
End If
End Sub
End Class
請打開Default5.aspx通過specifiying這個網址:default5.aspx ID = 1,並用這個URL打開另一個頁面:default5.aspx ID = 2?。然後從default5.aspx?id = 1的瀏覽器中打開導航到default4.axpx(通過指定URL),並在運行時,從default5.aspx?id = 2打開,從瀏覽器導航到default4.axpx。在這兩種情況下的結果是:
2,0
2,1
2,2
2,3
2,4
2,5
2,6
2,7
2,8
2,9
2,10
兩種情況下的會話變量都是2(我明白爲什麼會這樣)。請看我昨天問的問題:ASP.NET - Accessing web page twice from client。在這個例子中,兩種情況下會話變量都不是2。
我的問題是; ASP.NET可以同時處理來自同一客戶端的多個請求。贏得迴應似乎表明一次處理一個請求。
你是什麼意思:「如果你禁用會話」?我在問題中提供的示例代碼使用會話變量。謝謝。 – w0051977
@ w0051977是的我看到使用會話變量作爲測試的例子,如果您需要它們,並且無法避免它們,您無法使用來自asp.net的現有會話代碼 - 所以您需要使自定義會話句柄代碼(因爲這個原因,我做了一個,並不是那麼難) – Aristos
@ w0051977會話實際上是將用戶的cookie與數據庫中的一行連接起來,這些數據庫保留了一些數據。 – Aristos