C#( 2.0 )で Web監視ツールをテスト的に作成するために、HttpWebRequest を連続して呼び出すと3回目以降に
必ず、 WebException の例外が発生する。内容は、「操作はタイムアウトになりました。」とのこと。
ん~~~~。
調査の結果、 Abort()を呼び出すと解決するらしい。
サンプルは以下の例・・・。
while(true){
try{
WebRequest http = HttpWebRequest.Create(url);
http.Proxy = null;//自動プロキシ検索を無効
http.Timeout = 2000;//タイムアウト値の設定 (2秒)
HttpWebResponse response = (HttpWebResponse)http.GetResponse();
Console.WriteLine("The site is up.");
http.Abort();//これを入れないと3回目以降失敗し続ける。
}catch (WebException webexc)
{
Console.WriteLine("The site is down. : " + webexc.Message);
}
Thread.Sleep(5000); //5秒に待つ
}
忘れずにメモメモ