-1

我在 Quartz.Net 框架中使用它。每个 Job(thread) 只有一个 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;
  • 服务点管理器.MaxServicePoints = 1000;
  • request.KeepAlive=false
  • 请求超时 = 5000;
  • 请求.ReadWriteTimeout = 5000;
  • request.ServicePoint.ConnectionLeaseTimeout = 5000;
  • request.ServicePoint.MaxIdleTime = 5000;

我正在使用秒表来测量网络请求时间。这些是日志:

异常Web请求时间:16333 ms

异常Web请求时间:8350 ms

异常Web请求时间:9846 ms

异常Web请求时间:7545 ms

异常Web请求时间:6662 ms

异常Web请求时间:18332 ms

任何的想法?

PS:这个问题是Timeout supported Multithreaded Web Request的总结版

4

1 回答 1

0

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

于 2012-09-14T14:00:24.190 回答