IIS 7.0-响应被限制在 500ms 块内?

IIS 7.0-响应被限制在 500ms 块内?

场景:ASP.NET MVC wep 应用程序位于我的本地计算机(Vista Ultimate,IIS 7.0)上,除了一个用户(我)登录并查看索引页之外,没有发生任何事情。该页面包含从底层数据库提取并从控制器操作返回的 9 个动态图像。我已将这些图像的实际处理时间缩短到每幅 15 毫秒。打开 Firebug 并观察页面加载。我看到的是 9 个图像请求一起发出 - 这并不奇怪 - 但其中四个几乎立即返回;0.5 秒后又有两个;1 秒后又有一个;然后是 1.5 秒和 2 秒。服务器端的日志记录表明单个响应仍然只需要 15 毫秒。因此,看来 IIS 正在将事物排队为 500 毫秒的块。 (重复实验会产生不同的结果,但每次图像都会以类似的块返回 - 例如,您可能会在第一组中得到三个,然后在 0.5 秒时得到三个,在 1 秒时得到两个等等 - 并且它总是以 500 毫秒的间隔,而不是其他任何东西。)它也是可跨浏览器重复的,并且不能与其他形式的内容重复。

我还没有发现任何关于这个问题的特别提及,所以我假设它不是 IIS 错误,所以是:

i) 桌面操作系统上的 IIS 故意这样做,以便让您在生产中使用服务器操作系统?ii) 自从我了解 IIS 以来,有一些神奇的设置一直困扰着我?iii) MVC 或 SQL Server 2008 有什么特别之处吗?还是别的什么?

答案1

这可能是因为您使用的是桌面操作系统,垃圾收集器会在每次请求之间生成图像后尝试进行清理。

但要清楚了解时间花在哪里,请尝试启用 IIS 失败请求跟踪(状态代码 200)并查看每个请求所花费的时间。此外,您可以查看 .NET 性能计数器中的 GC,并调查 GC 所花费的时间百分比和引发的 GC,以查看我上面的猜测是否正确。

相关内容