Network programming c#网络编程-HTTPWebRequest抓取

Network programming c#网络编程-HTTPWebRequest抓取,network-programming,httpwebrequest,screen-scraping,html-parsing,Network Programming,Httpwebrequest,Screen Scraping,Html Parsing,我正在构建一个web抓取应用程序。它应该能够从单个主机到单个目标web服务器的并发HttpWebRequests中删除复杂的web站点 应用程序应在Windows server 2008上运行 一个HttpWebRequest请求数据可能需要1分钟到4分钟才能完成(因为数据库运行时间很长) 我应该有至少100个到目标web服务器的并行请求,但我注意到,当我使用超过2-3个长时间运行的请求时,我会有很大的性能问题(请求超时/挂起) 在这种情况下,从单个主机到单个目标web服务器可以有多少并发请求?

我正在构建一个web抓取应用程序。它应该能够从单个主机到单个目标web服务器的并发HttpWebRequests中删除复杂的web站点

应用程序应在Windows server 2008上运行

一个HttpWebRequest请求数据可能需要1分钟到4分钟才能完成(因为数据库运行时间很长)

我应该有至少100个到目标web服务器的并行请求,但我注意到,当我使用超过2-3个长时间运行的请求时,我会有很大的性能问题(请求超时/挂起)

在这种情况下,从单个主机到单个目标web服务器可以有多少并发请求?我可以在应用程序中使用线程池来运行到服务器的并行HttpWebRequests吗?默认出站HTTP连接/请求限制是否有问题?当我达到出站连接限制时,请求超时情况如何?对于我的场景,什么是最好的设置

任何帮助都将不胜感激


谢谢

默认情况下,HTTP协议将每个HTTP/1.1服务器的用户代理限制为2个并发连接。这是您达到的限制

通过设置来增加限制

ServicePointManager.DefaultConnectionLimit.
您还可以通过设置

ServicePointManager.GetServicePoint(url).ConnectionLimit