在我的 ASP.NET MVC3 应用程序中,我有两个非常简单的控制器操作,其中一个返回ContentResult
一小段硬编码文本,另一个返回HttpStatusCodeResult
代码 403。
部署应用程序,然后将一组请求从同一台计算机多次发送到该控制器操作所服务的路由,然后从另一台计算机向这些路由发送等效的请求包。两者之间没有执行配置更改,没有重新启动应用程序池 - 没有那样的事情。
我查看了 IIS 日志,发现time-taken
(请求在 Web 服务器中花费的时间,不包括任何网络延迟、DNS 查找等)非常不同,具体取决于请求是否从同一台计算机发送,也取决于调用了哪些动作。如果它来自同一台计算机time-taken
,则两个操作大约需要 15 毫秒。如果它来自另一台计算机time-taken
,则动作返回大约 260 毫秒,ContentResult
动作返回 403 大约 100 毫秒。
显然,当请求来自另一台计算机时,响应正文中是否返回任何内容是有依赖性的。
我的代码没有任何明确的逻辑来改变请求的处理方式,具体取决于请求的来源和结果。
什么可能导致时间差异?