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

时间:2019-07-03 02:44:45

标签: azure azure-api-management

我有一个Azure函数,该函数使用API​​管理服务中公开的HttpClient API调用Service Fabric API。但是API管理服务日志显示API调用失败,出现问题ID“正向请求时出现ClientConnectionFailure”。

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

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

2 个答案:

答案 0 :(得分:0)

首先,您必须了解在APIM中,我们拥有可以作为您的浏览器或任何其他工具的客户端,该APIM代理将请求转发到后端和承载您的应用程序的后端。

客户端连接失败的原因是客户端在从APIM代理接收响应之前先断开连接。

两个原因可能导致客户端断开连接

  1. 由于APIM网关上的重负载或APIM实例所引用的后端没有足够的处理能力来处理APIM网关转发的请求,因此APIM网关需要很长时间才能做出响应。客户超时。

  2. 客户端在收到来自APIM代理的响应时会出于任何原因放弃连接。

您必须确定导致此问题的原因,并根据此问题做出反应,方法是修复客户端或分配APIM或后端。

答案 1 :(得分:0)

我有类似的问题。以我为例,销售人员是客户,我经常观察到此错误。如果在呼叫后5秒钟内未收到响应,销售人员将关闭连接。这使APIM级别的请求失败,并观察到错误“转发请求时出现ClientConnectionFailure”。

请检查您的客户等待响应的时间。如果APIM花费的时间长于那,则是同样的问题。

为此,您需要增加客户端的等待时间或改善APIM的响应时间。