现象:

HttpWebRequest 出现设置超时时间无效的情况(实际超时时间远大于设置时间),网上有说是因为dns解析的问题,实测,dns解析影响很小,可以忽略

解决方法:

经调试发现,创建的httpwebrequest对象的proxy属性默认是使用本地系统代理loopback那个地址,创建后手动将Proxy设置为null,恢复正常,超时时间和设置的时间一致。

string strUrl = "https://www.softool.cn";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUrl);
//手动将Proxy属性设置为null:
request.Proxy = null;
request.Timeout = 2000; //设置 2000ms 超时

但是另一个问题出现,当使用代理时(webproxy),设置的超时时间也会出现实际时间远大于设置时间的情况,目前还未找到原因,可能在使用代理时,超时时间就无用了,实际超时时间依赖代理服务器对外的超时时间


来源:https://www.cnblogs.com/Wind-yesterday/p/10983945.html