Asp.net mvc 当当前请求处于休眠状态时,服务器是否应该能够执行第二个请求?
我正在使用ASP.NET MVC和IIS 7.5版 我在控制器中执行以下操作Asp.net mvc 当当前请求处于休眠状态时,服务器是否应该能够执行第二个请求?,asp.net-mvc,Asp.net Mvc,我正在使用ASP.NET MVC和IIS 7.5版 我在控制器中执行以下操作 public ActionResult Wait(int time = 10000) { var start = DateTime.Now; Thread.Sleep(time); var end = DateTime.Now; var diff = (end - start); return Json(new { start = start.ToStri
public ActionResult Wait(int time = 10000)
{
var start = DateTime.Now;
Thread.Sleep(time);
var end = DateTime.Now;
var diff = (end - start);
return Json(new {
start = start.ToString("yyyy-MM-dd HH:mm:ss.fff"),
end = end.ToString("yyyy-MM-dd HH:mm:ss.fff"),
milliseconds = diff.TotalMilliseconds.ToString("#,###"),
}, JsonRequestBehavior.AllowGet);
}
如果我访问:
/等等?时间=10000
然后:
/等等?时间=10
在第一个请求完成之前,甚至不会执行第二个请求
这是正常的行为,还是每个请求都应该在自己的线程中执行
在我们的应用程序中,不同的调用可能需要从不同的服务器请求数据,我不想等到一个复杂的请求完成后,再执行几个简单的请求(只需要本地数据)
编辑
我刚刚意识到我所说的是来自同一个用户(在同一个会话中)的请求。我想我只是有点迟钝,但也许还有人能帮我。来自
并发请求和会话状态
每个会话对ASP.NET会话状态的访问是独占的,这意味着
如果两个不同的用户同时发出请求,则访问每个用户
同时授予单独的会话。但是,如果两个并发
对同一会话发出请求(使用同一会话ID
值),第一个请求以独占方式访问会话
信息。第二个请求仅在第一个请求之后执行
完成了。(第二个会话也可以访问,如果
由于第一个请求超过了
锁定超时。)如果@Page中的EnableSessionState值
指令设置为只读,这是对只读会话的请求
信息不会导致对会话数据的独占锁定。
但是,会话数据的只读请求可能仍需要等待
对于由要清除的会话数据的读写请求设置的锁
从
并发请求和会话状态
每个会话对ASP.NET会话状态的访问是独占的,这意味着
如果两个不同的用户同时发出请求,则访问每个用户
同时授予单独的会话。但是,如果两个并发
对同一会话发出请求(使用同一会话ID
值),第一个请求以独占方式访问会话
信息。第二个请求仅在第一个请求之后执行
完成了。(第二个会话也可以访问,如果
由于第一个请求超过了
锁定超时。)如果@Page中的EnableSessionState值
指令设置为只读,这是对只读会话的请求
信息不会导致对会话数据的独占锁定。
但是,会话数据的只读请求可能仍需要等待
对于由要清除的会话数据的读写请求设置的锁
非常感谢。因此,我将此属性添加到控制器,我就完成了(?:[SessionState(SessionStateBehavior.ReadOnly)],或者可以使控制器操作异步,这样就不会像那样阻塞。我猜那条线索。睡眠就是其中的一个例子,你并没有做那么愚蠢的事。谢谢。因此,我将此属性添加到控制器,我就完成了(?:[SessionState(SessionStateBehavior.ReadOnly)],或者可以使控制器操作异步,这样就不会像那样阻塞。我猜那条线索。睡眠就是其中的一个例子,而你实际上并没有做那么愚蠢的事情。