首页 > 解决方案 > 被 Heroku 服务器杀死的连接的 WebException 会是什么样子?

问题描述

背景:

我正在与外部供应商合作,其中文件下载请求通过 Web 服务进行。我相信他们的服务托管在 herokuapp 上,最近我们看到连接在 30 秒后被终止。我们 99.99% 的请求会收到亚秒级响应,偶尔一两个请求会花费 20 多秒,对于任何达到 30 秒标记的请求,我们都会看到问题。所以我只在大约 1/10,000 个请求中看到这个问题(每隔几天发生一次)。

我环顾四周,发现唯一常见的是 Heroku 有 30 秒的 HTTP 请求超时,一些人对此有问题,在服务器端很容易发现其中之一。问题是我们无权访问服务器端日志,只有返回客户端的一般错误。

我试过的:

在调试方面,我已将服务端点指向一个本地虚拟 Web 服务,该服务实际上只是休眠 3 分钟,直到 120 秒标记(这是我们服务器的默认设置)才超时。

30 秒后到外部供应商服务的 WebException 消息中出现错误:“底层连接已关闭:接收时发生意外错误”

作为对上述错误消息的说明,tls1.2 已被强制用于这些请求。

实际问题:

是否有可能基于这些日志,Heroku 实际上正在杀死这个连接服务器端,这会导致看到的一般错误?

资料来源:

Heroku HTTP 请求超时:https ://devcenter.heroku.com/articles/request-timeout

Outsystems 将这些错误归咎于远程服务器,而不是客户端:https ://www.outsystems.com/forums/discussion/15641/tip-the-underlying-connection-was-closed-an-unexpected-error-occurred-on-a -接收/

标签: httpwebherokuservicetimeout

解决方案


推荐阅读