1

私は非常に単純な HTTP get アプリケーションを持っています。これは、さらに単純な編集済みバージョンです。

using System;
using System.Net;
using System.Threading;

namespace UploadRichardsStatusConsoleApplication
{
    class Program
    {
        static void Main()
        {
            const string requestString = "http://www.google.com/";
            while (true)
            {
                var request = WebRequest.Create(requestString);
                Console.WriteLine("request sent = " + requestString);
                try
                {
                    var response = request.GetResponse();
                    Console.WriteLine("response.ContentLength = " + response.ContentLength);
                }
                catch (WebException)
                {
                    Console.WriteLine("Request timed out");
                }
                Thread.Sleep(5000);
            }
        }
    }
}

実際のコンソール アプリには独自の Azure URL がありますが、リクエスト文字列が何であれ、Google であっても問題が顕在化するため、これはサーバー側の問題ではないと思います。コードを実行すると、最初の 2 つのループが成功します。つまり、response.ContentLength報告されます。その後、タイムアウトします。電話が 2 回しかないのはなぜですか? 私が取り組んでいる実際のアプリは、HTTP GET を使用して定期的にステータスを報告するため、これを繰り返し (2 回以上) 行う必要があります。

私が試したことに注意する必要があります:

  • 各 URL が区別されるように、未使用のクエリ属性を URL に追加する
  • タイムアウトを巨大な値に設定する
  • キャッシュをバイパスする

しかし、これらのどれも機能しませんでした。

4

1 に答える 1