ASP.NETがワーカースレッドを使用して要求を処理することを理解しています。したがって、クライアントAとクライアントBは要求を行うことができ、要求は同時に処理されます。
クライアントは同時に複数のリクエストを行うことができますか?以下のコードを参照してください。
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
このURLを指定してDefault5.aspxを開いてください:default5.aspx?id = 1そしてこのURLで別のページを開いてください:default5.aspx?id=2。次に、default5.aspx?id = 1が開いているブラウザーから(URLを指定して)default4.axpxに移動し、これが実行されている間に、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-クライアントからWebページに2回アクセスします。この例では、どちらの場合もセッション変数は2ではありません。
私の質問は; ASP.NETは、同じクライアントからの複数の要求を同時に処理できます。Wins応答は、一度に1つの要求が処理されることを示唆しているようです。