我有一个在 Azure 上运行的应用服务(计划 B2)。
我从 Docker 容器运行的集成测试正在一一调用一些应用服务端点,有时会收到 500 或 502 错误。
当我调试测试时,我在调用之间进行一些暂停,并且所有请求都成功工作。另外,当我扩展我的应用程序服务时,一切正常。(我不想扩展,因为 cpu 和其他参数很低。)
在我的测试中,我只有一个 HttpClient
,并在最后将其丢弃,因此我认为不应该存在任何连接泄漏。
此外,在 TCP 连接中,我在 Azure docs 中总共有大约 60 个连接限制为 1,920。
这个应用程序没有被任何用户访问,但这里它说我有最大连接数。有什么办法可以跟踪这些连接吗?为什么当我收到这些 5xx 错误时,我在应用洞察中看不到任何内容?另外,当限制为 1920 时,15 个连接如何超出限制?这些连接是否与我的错误有关以及如何修复它们?
最佳答案
您在 Application Insights 中看不到它们,因为它们发生在 IIS 级别,这会破坏请求,因此数据不会发送到 Application Insights。
查找信息的位置是“诊断和解决问题”,然后是“可用性和性能”。更多信息在这里:
https://learn.microsoft.com/en-us/azure/app-service/overview-diagnostics
PS:我确实认为问题与您的 HTTPClient 的 Dispose 有关。这是一个众所周知的问题,也是他们引入 HttpClientFactory 的原因。更多信息在这里:
关于Azure 应用服务从 HttpClient 返回 502 错误网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64877508/