2011-08-09 14 views
0

現在、私は奇妙な問題に直面しています。私は、ウェブサイトの応答時間をテストしていますが、この方法は、(接続のタイミング)三回目にループしたときに、それがハング:「HTTPレスポンスタイマー」、私は想定していますプログラムは3回目の繰り返し(HTTPWebRequest)でハングします。C#

internal class Program 
{ 

     Console.ReadLine(); 

     loop(); 
    } 
} 

出力を、それがハングアップする前であります実行中のインスタンスと関係するものです。

+0

あなたのループに 'for'ステートメントを使うことを検討してください。そうしないと、十分な時間ループすると、最終的に' StackOverflowException'が返されます。関数を再帰的に呼び出しています。 –

答えて

5

あなたは応答を閉じる必要があります。それ以外の場合は、最大限の接続に達します。

using(HttpWebResponse response = (HttpWebResponse)request.GetResponse()){ 

    // .. here some action if any 
} 
2

あなたはそれが以前のリクエストからの接続上にぶら下がっています意味応答、処分していない:

は、usingステートメントを使用し、これはレスポンスを閉じて処分するための最も簡単な方法です。新しい要求が、プールからその接続を取得するために待っている、と古いレスポンスがまだ接続を「所有」するだけにコードを変更するため、ブロックしている:

// You weren't really using the HttpWebResponse class anyway, so why cast? 
using (var response = request.GetResponse()) 
{ 
} 

あなた本当にはかかわらず、再帰することを意味していましたか?なぜあなたはループしていません:

while(true) 
{ 
    GetResponse(); 
} 

などですか?

関連する問題