我理解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打开导航到default4.axpx(通过指定URL),当它运行时,从浏览器导航到default4.axpx,并打开default5.aspx?id = 2。两种情况的结果是:
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可以同时处理来自同一客户端的多个请求。 Wins响应似乎表明一次处理一个请求。
答案 0 :(得分:1)
对于其他发现此帖子的人来说,如果您不需要对Session的写访问权限,则声明只读访问权限允许ASP.NET同时运行请求,因为它不必获取会话锁:
在页面中:
EnableSessionState="ReadOnly"
或者在通用处理程序中实现:
IReadOnlySessionState
答案 1 :(得分:0)
My question is; can ASP.NET process multiple requests
from the same client at the same time.
如果你禁用会话,或者使用没有会话的处理程序,或者完全自定义你的会话,那就是。
如果您为使用"web garder"
的相同网络应用程序使用多个池,它也可能有所帮助您还可以阅读:
ASP.NET Server does not process pages asynchronously
Trying to make Web Method Asynchronous
Web app blocked while processing another web app on sharing same session
What perfmon counters are useful for identifying ASP.NET bottlenecks?
Replacing ASP.Net's session entirely