IIS(或可能是ASP.NET)在与其他请求同时发送请求时需要更长的时间来响应请求。例如,如果网页同时发送请求A以及其他20个请求,则需要500毫秒,但是当此请求被发送时,需要400毫秒。
此功能有名称吗?它在IIS或ASP.NET中?我可以禁用或更改它吗?使用它有什么好处吗?
注意:
更新1:
所有请求都将从数据库中读取内容。我在Chrome开发人员的控制台中查看了它们。还创建了一个简单的C#
应用程序,它向服务器发出多个并行请求。当它们真正并行时,它们需要很长时间,但是当每次呼叫之间等待时,响应时间会急剧减少。
更新2:
我的应用程序中有一个简单的方法,它只发送一个Ok
:
[AllowAnonymous]
public IHttpActionResult CheckOnline()
{
return Ok();
}
此处存在相同的行为。在我的自定义C#
测试仪中,如果我同时多次调用此路由,则需要超过1000毫秒完成,但在每次调用之间等待5秒时,响应时间将降至20毫秒以下。
此方法不受IO或CPU限制。似乎IIS检测到这些请求来自单个特定用户/客户端,因此不要过多关注它。
答案 0 :(得分:1)
如果在应用程序中使用ASP.NET Session,请求将逐个排队并处理。因此,在处理先前的请求时,最后一个请求可以保留在队列中。
另一个可能的原因是ASP.NET Thread Pool中的所有线程都很忙。在这种情况下,将创建一个新线程来处理需要额外时间的新请求。
这只是一个理论(或我的想法)。任何其他原因都是可能的。