asp.net - 诊断 "Request timed out"HttpException

标签 asp.net httpexception request-timed-out

在 StackOverflow 上,我们每天都会看到一些“请求超时”异常。

事实:

  • 请求超时默认为 90 秒
  • 仅出现在 POST 上
  • 发布的数据是文本,通常很小 (< 1KB),但范围可以达到几 KB
  • 服务器变量中未捕获任何表单数据
  • 客户端 UA 多种多样:IE5.5 - 7、Firefox 3.0.5、iPhone、Chrome
  • 客户所在地多种多样:英国、法国、美国 - 北卡罗来纳州、俄亥俄州、内布拉斯加州、印第安纳州

我们测试了基于服务器的超时(即使用 Thread.Sleep),并且在异常日志中所有表单变量都被正确捕获 - 这使我们相信客户端在发送在规定的时间内提出请求。

任何关于如何捕获/调试这种情况的想法都非常受欢迎!

最佳答案

我在使用小型 AJAX Web 服务的生产服务器上也遇到了同样的问题。在防火墙外进行数据包捕获后,我们发现服务的 POST 分为两个 TCP 段,而第二个段从未到达我们手中。 (第一个数据包仅包含 header ,第二个丢失的数据包应该是 json 正文)所以基本上 IIS 只是坐在那里等待 POST 的其余部分。配置的超时后,服务器向客户端发送 RST 数据包并记录“请求超时”错误 - 这是正确的行为。

我们试图获得客户端重现,但运气不佳,但在我们的例子中,这似乎完全与网络相关(或者可能是某些不喜欢帖子内容的“安全”软件)。

关于asp.net - 诊断 "Request timed out"HttpException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/441792/

相关文章:

c# - 将所有发布的字符串修剪为 API ASP.NET CORE 3.x

flutter - (HttpException)=> Null'不是 '(dynamic) => dynamic'类型的子类型! flutter

asp.net - GZIP 与 DEFLATE 压缩相比有何优势?

c# - 为什么安全印章不会注销用户?

c# - 抛出 HttpException 总是发回 HTTP 500 错误?

c# - 捕捉 HttpException 是个好主意?

python - 在 Elastic Search 中为批量加载设置请求超时

google-app-engine - Google 应用引擎,30 秒后请求超时,F2 实例

.net - 控制台应用程序 (.NET) 中的 SOAP 请求超时

javascript - 基本 JavaScript 警报未显示