转发请求时的 API 管理服务 ClientConnectionFailure

PND*_*Dev 6 azure azure-api-management

我有一个 Azure 函数使用 API 管理服务中公开的 HttpClient API 调用服务结构 API。但是 API 管理服务日志显示 API 调用失败,问题 ID 为“ClientConnectionFailure at forward-request”。

在客户端,我收到 System.Net.Sockets.SocketException 和错误消息“操作被取消。无法从传输连接读取数据:由于线程退出或应用程序请求,I/O 操作已中止。由于线程退出或应用程序请求,I/O 操作已中止”

这种失败的可能原因是什么?如何解决?不幸的是,我找不到足够的文档?

use*_*672 9

首先,您必须了解,在使用 APIM 时,有一个客户端,可以是您的浏览器、CURL 或任何其他工具,以及将请求转发到后端 API 和后端服务器的 APIM 代理。

客户端连接失败的原因是客户端在收到来自 APIM 网关(代理)的响应或完整响应之前断开连接。

如果出现以下情况,客户端可能会断开连接:

  1. (1) 由于 APIM 网关负载过重,APIM 网关响应时间较长,(2) APIM 服务存在一些性能问题,(3) APIM 实例指向(代理)的后端无法处理APIM 网关转发的请求数量(无法跟上 APIM 服务负载)或 (4) 因为后端通常很慢,因此客户端在等待响应或有时仍在发送请求时超时。

  2. 客户端因任何其他原因断开连接(例如用户取消请求、客户端应用程序关闭、崩溃等)

ClientConnectionFailure atforward-request 表示在 APIM 网关将请求转发到后端或等待后端响应时客户端断开了连接,请参阅API 管理中的传输响应错误和转发请求错误有什么区别?

您必须确定导致此问题的原因,并根据该原因需要通过修复客户端或扩展 APIM 或后端来做出反应。