为什么我无法在HttpWebRequest上获取超时?(HttpWebRequest超时噩梦)



我在Quartz中使用它。Net框架。每个作业(线程)只有一个web请求

这是检查清单:

  • 所有一次性物品均用于使用块!

    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            using (Stream stream = response.GetResponseStream())
            using (StreamReader reader = new StreamReader(stream))
                str = reader.ReadToEnd();
    
  • ServicePointManager。Expect100Continue=false
  • ServicePointManager。DefaultConnectionLimit=1000
  • ServicePointManager。最大服务点数=1000
  • 请求。KeepAlive=false
  • 请求。超时=5000
  • 请求。读写超时=5000
  • 请求。ServicePoint。ConnectionLeaseTimeout=5000
  • 请求。ServicePoint。最大空闲时间=5000

我正在使用Stopwatch来测量web请求时间。这些是日志:

异常Web请求时间:16333毫秒

异常Web请求时间:8350ms

异常Web请求时间:9846ms

异常Web请求时间:7545毫秒

异常Web请求时间:6662ms

异常Web请求时间:18332毫秒

有什么想法吗

PS:这个问题是支持超时的多线程Web请求的摘要版本

我从这个问题中学到的唯一教训是:如果你在多个线程中使用HttpWebRequest,不要同步使用它!

相关内容

  • 没有找到相关文章