私は非常に単純な 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 に追加する
- タイムアウトを巨大な値に設定する
- キャッシュをバイパスする
しかし、これらのどれも機能しませんでした。