C# ASP NET如何找到查询排队的位置

C# ASP NET如何找到查询排队的位置,c#,asp.net,iis,request-queueing,C#,Asp.net,Iis,Request Queueing,我有一个ASP Net mvc 5项目,运行在iis 8.5上。有许多页面包含从以下操作中获得的图像: <img src='/File/Contents/1'/> <img src='/File/Contents/2'/> ... ... 大约90%的图像加载速度相当快(每次几毫秒),但加载最后10%(每次2-5秒)需要很长时间。 我发现所有图像的内容操作都是以相同的速度执行的,大部分时间都花在PostmaRequestHandler和AcquisiteReques

我有一个ASP Net mvc 5项目,运行在iis 8.5上。有许多页面包含从以下操作中获得的图像:

<img src='/File/Contents/1'/>
<img src='/File/Contents/2'/>
...

...
大约90%的图像加载速度相当快(每次几毫秒),但加载最后10%(每次2-5秒)需要很长时间。
我发现所有图像的内容操作都是以相同的速度执行的,大部分时间都花在PostmaRequestHandler和AcquisiteRequestState事件之间。我相信这些请求正在某个地方排队,但我不明白为什么会发生这种情况。我知道iis中有一个最大并发请求数的限制,但是.NET4的默认值是5000,我最多有100个图像。有人能告诉我发生了什么吗?

您正在使用HTTPSession吗?如果您使用的是会话,则会保持R/W锁,除非您明确声明该会话为只读。这是使用会话的主要缺点之一,可能会导致请求排队,并在AcquisiteRequestState出现“挂起”。

也许浏览器是瓶颈?据我所知,浏览器将“批量”加载图片,其大小不能超过允许的最大连接数。如果请求总数超过6(对于Chrome),则其他请求将暂停,直到连接可用。但这种“慢”请求在TTFB状态下花费时间。我在问题中还提到,此请求在PostapRequestHandler和AcquisiteRequestState事件之间挂起,这证实了这是一个服务器问题。