我在使用 HttpWebRequest 时遇到了一些非常奇怪的行为,希望有人可以帮助我。我有一个控制台应用程序,它通过使用 HttpWebRequest 对象来检索目标网站的内容来完成一些聚合工作。由于要求的性质,该应用程序是多线程的,并尝试建立 10 到 30 个同时连接(我一直在尝试一系列值)。实际的网络请求结构如下:
var req = (HttpWebRequest)WebRequest.Create(url);
WebResponse resp = req.GetResponse();
Stream s = resp.GetResponseStream();
var sr = new StreamReader(s, Encoding.ASCII);
string doc = sr.ReadToEnd();
sr.Close();
resp.Close();
return doc;
无论如何,奇怪的行为是,在正常情况下,应用程序每分钟可以实现大约 120 个请求,但如果我打开 Fiddler,它会跳到大约 600 个。使用 Windows 7 资源监视器,我可以看到网络活动相应增加。控制台进程的 TCP 连接现在将远程地址列为“IPv4 环回”,而不是目标服务器 IP 地址(预期)。我确实想知道机器允许的同时 HTTP 请求的最大数量,但在注册表中更改它似乎并没有什么不同。
所以问题是;运行 Fiddler 是怎么回事,它突然将吞吐量提高了五倍,我怎样才能在机器上本地实现这一点而无需启动另一个工具?
谢谢!