外部サーバーから大量の画像を取得する必要がある ASP.NET サーバーを C# で作成しています。私が抱えている問題は、画像がメソッドから返されていることですが、半分しか読み込まれていないようです。
これは、私のサーバーを介してロードされたときのタイルの外観です (これは OSM サイクル マップ タイルです)。
これは、ブラウザーで (もちろん同じ URL から) 開いた場合のタイルの外観です。
すべてのバイトがネットワーク経由で送信されていないことは明らかですが、どこで失われているのかはわかりません。これは私のコードがどのように見えるかです:
private byte[] GetTile(string url)
{
var response = WebRequest.Create(url).GetResponse();
Stream respStr = response.GetResponseStream();
byte[] buf = new byte[response.ContentLength];
respStr.Read(buf, 0, buf.Length);
return buf;
}
これは、これを行う正しい方法のようにも感じられません。私のバイトはどこに行くのですか?関数から戻る前に、サーバーからのすべてのバイトが到着するのを待つ推奨される方法はありますか?