Azure API管理服务客户端连接在转发请求时失败

Azure API管理服务客户端连接在转发请求时失败,azure,azure-api-management,Azure,Azure Api Management,我有一个Azure函数使用API管理服务中公开的HttpClient API调用服务结构API。但是API管理服务日志显示API调用失败,问题ID为“ClientConnectionFailure at forward request” 在客户端,我收到带有错误消息的System.Net.Sockets.SocketException “操作已取消。无法从传输连接读取数据:由于线程退出或应用程序请求,I/O操作已中止。由于线程退出或应用程序请求,I/O操作已中止” 这次失败的可能原因是什么?如何

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

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


这次失败的可能原因是什么?如何修复它?不幸的是,我找不到足够的文档?

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

客户端连接失败的原因是客户端在接收到来自APIM代理的响应之前中断了连接

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

  • APIM网关需要很长时间才能响应,因为APIM网关或APIM实例所指向的后端负载过重,没有足够的处理能力来处理APIM网关转发的请求,因此客户端超时

  • 客户端在接收来自APIM代理的响应时,出于任何原因断开连接


  • 您必须确定导致此问题的原因,并根据此原因做出反应,要么修复您的客户端,要么扩大您的APIM或后端。

    我也有类似的问题。在我的案例中,销售人员就是客户,我经常观察到这个错误。如果呼叫后5秒内未收到响应,销售人员将关闭连接。这会使APIM级别的请求失败,并观察到错误“ClientConnectionFailure at forward request”

    请检查您的客户端等待响应的时间。如果APIM花费的时间比这更长,则是同一问题


    为了满足这一需求,您需要增加客户端的等待时间,或者改进APIM的响应时间。

    HI。通过在具有相同负载和设置的Postman上运行来检查API。首先检查直接链接,然后使用APIM检查该链接。比较此API所用的时间。看起来它超时了。试试thsi,从APIM的角度来看,客户端(调用APIM的那个)正在断开连接。实际上问题是后端API。后端API抛出了一个未经处理的c#应用程序异常,但我的预期是API管理网关将相同的异常转发给客户端,但API管理抛出了误导性异常,如转发请求时ClientConnectionFailure和超时等。不确定为什么会出现这种行为?