【问题标题】:Single request to specific API stalled for long对特定 API 的单个请求长时间停滞
【发布时间】:2020-07-09 12:23:37
【问题描述】:

我已经使用 ASP.NET Core 2.2 构建了一个 API 应用程序。

一切都很好。除了一个PATCH API,它接受一个I​​D和一个列表,来替换对应项的列表。

这个 API 也可以与 POSTMAN 配合使用。简单快速,按预期工作。

但是,要在浏览器上运行,发送该请求会延迟 1 分钟。

我试图通过仅在一个 jQuery 函数中重写应用程序来简化问题,以检查问题是否出在我的前端应用程序上;但是它仍然会停顿 1 分钟。

我查了stalled,有人说同时加载最多6个请求可以是Chrome策略;但这不是我的情况。当时只有这样的请求,除此之外,其他所有 API 都可以正常工作。

另外,我也尝试过其他浏览器:Firefox 和 Edge,但还是一样。

根据 Chrome 提供的文章:

  • 排队。浏览器在以下情况下将请求排队:
    • 有更高优先级的请求。
    • 已经为此源打开了六个 TCP 连接,这是限制。仅适用于 HTTP/1.0 和 > HTTP/1.1。
    • 浏览器正在磁盘缓存中短暂分配空间
  • 停止。请求可能因排队中所述的任何原因而停止。

似乎长时间“停滞”意味着请求没有发送事件。这是否意味着我可以排除修复后端 API 的可能性?

而且,由于同时没有其他请求,这是否意味着它很可能是“浏览器在磁盘缓存中短暂分配空间”的原因,或者还有其他原因吗?

我也想知道为什么只有这个 API 会出现这个问题。方法“PATCH”有什么特别之处吗?

【问题讨论】:

    标签: asp.net-core postman httprequest patch stalled


    【解决方案1】:

    首先使用秒表并评估您的代码在浏览器和邮递员中的响应时间,并查看每个代码的响应时间。 如果两者相同,请不要触摸您的代码,因为您的问题不在于您的方法。 如果可以,请使用“发布 http 属性”对其进行测试,直到知道您的问题是不是因为它。 但是我想它的原因是你的系统。 当然,通过更改管道 (startup.cs) 可能会解决 ypur 问题。还有像 CORS 这样的问题,只发生在浏览器中而不是 postman 中。

    【讨论】:

      猜你喜欢
      • 2015-02-28
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      • 2013-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多