You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GetResponse方法固定耗时21秒返回响应问题排查求助

排查GetResponse方法21秒延迟的实用思路

嘿,我之前也踩过这个21秒延迟的坑,这个数字其实挺有标志性的——基本是某个系统级超时重试的阈值触发了。结合你已经排查过代理设置的情况,给你几个具体的排查方向:

  • 先查DNS解析是否卡壳:21秒很大概率是DNS查询超时导致的。你可以手动跑nslookup 目标域名或者ping -a 目标域名看看解析速度,如果解析慢或者失败,试试手动指定公共DNS(比如8.8.8.8)再测试代码。

  • 强制禁用IPv6试试:不少系统默认IPv6优先,如果目标服务器的IPv6链路不通,系统会等IPv6超时后才切到IPv4,这个等待时间刚好接近20秒。你可以在代码里给HttpWebRequest加个配置强制用IPv4:

    request.ServicePoint.BindIPEndPointDelegate = (servicePoint, remoteEndPoint, retryCount) =>
    {
        if (remoteEndPoint.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
        {
            return new IPEndPoint(IPAddress.Any, 0);
        }
        return null;
    };
    

    或者临时在系统网络设置里禁用IPv6,看看延迟会不会消失。

  • 检查WinHTTP全局代理设置:有时候代码里设了proxy=null,但系统级的WinHTTP代理可能还在生效。打开命令行跑netsh winhttp show proxy看看,如果有设置,用netsh winhttp reset proxy重置一下试试。

  • 抓包看请求到底卡在哪:用Wireshark或者Fiddler抓个网络包,能直观看到请求是卡在DNS查询、TCP握手,还是发送请求后的等待阶段,比瞎猜高效多了。

  • 确认代码超时设置:虽然你说所有URL都这样,但还是检查下HttpWebRequest的Timeout和ReadWriteTimeout是不是设得不合理?不过21秒更像是系统层面的超时,这个可以作为最后确认项。

另外,21秒这个时间点基本是三次7秒超时的累加,所以重点找那些会触发重试的环节——比如DNS解析失败重试、TCP连接失败重试这类场景。

内容的提问来源于stack exchange,提问作者thy3f

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:03:54