HttpWebRequest で非常に奇妙な動作が発生しています。誰かが私を助けてくれることを願っています。HttpWebRequest オブジェクトを使用してターゲット Web サイトのコンテンツを取得することにより、いくつかの集計作業を行うコンソール アプリがあります。要件の性質上、アプリはマルチスレッド化されており、10 ~ 30 の同時接続を試行します (さまざまな値で実験してきました)。実際の Web リクエストは次のように構成されています。
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;
とにかく、奇妙な動作は、通常の状況ではアプリが 1 分あたり約 120 の要求を達成しているということですが、Fiddler を開くと約 600 に跳ね上がります。Windows 7 リソース モニターを使用すると、それに応じてネットワーク アクティビティが増加することがわかります。コンソール プロセスの TCP 接続は、ターゲット サーバーの IP アドレスではなく、リモート アドレスを「IPv4 ループバック」としてリストするようになりました (予想される)。マシンで許可される同時 HTTP リクエストの最大数について疑問に思いましたが、レジストリでこれを変更しても違いはないようです。
問題は次のとおりです。Fiddler を実行すると、スループットが突然 5 倍になりますが、別のツールを起動する必要なく、マシン上でネイティブにこれを達成するにはどうすればよいでしょうか?
ありがとう!