0

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つの要求が処理されることを示唆しているようです。

4

2 に答える 2

0
My question is; can ASP.NET process multiple requests 
from the same client at the same time.

はい、セッションを無効にするか、セッションなしでハンドラーを使用するか、完全にカスタムセッションを作成した場合は可能です。

「Webガーダー」を作成する同じWebアプリケーションに複数のプールを使用する場合にも役立つ可能性があります

また読むことができます:
ASP.NETサーバーは非同期でページを処理しません同じセッションを共有している別のWebアプリを処理しているときにWebメソッド非同期Webアプリをブロック
しようとしていますASP.NETのボトルネックを特定するのに役立つperfmonカウンターは何ですか?ASP.Netのセッションを完全に置き換える


于 2012-10-20T12:26:52.943 に答える