BOS运行时-外部请求-远程主机强迫关闭了一个现有连接原创
54人赞赏了该文章
464次浏览
编辑于2023年10月18日 11:34:19
有时候,在星空请求外部地址服务时,会提示一个错误-远程主机强迫关闭了一个现有连接,这类问题一般是环境问题,可以参考以下步骤进行排查;
如果是公有云环境,首先检查是否在公有云上申请了白名单,非白名单的地址会被公有云防火墙拦截;
如果是私有云环境,检查在服务器上是否可以正常访问对方的服务地址;
如果可以正常访问,但是程序调用仍然报错,需要使用抓包工具(如fiddler)进行抓包,检查http返回的状态码及详细的错误,进行下一步分析;
1.如果以上分析步骤都没有检查出原因,那么可能是代码问题,如果是https地址访问,需要检查请求设置的协议,具体参数可以参考以下代码:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)768 | (SecurityProtocolType)192;
2.如果设置协议仍然存在错误,一般是首次请求正常,后续出现偶发异常,可以设置下以下代码
ServicePointManager.Expect100Continue=false
3.另外需要完善调用端的日志,记录关键代码请求的url、数据等信息,然后捕获异常,记录具体的哪一行代码报错,然后记录日志,提供相关人员分析定位。
推荐阅读