2011-12-02 2 views
4

から2ギガバイトの後、ダウンロードに失敗します。.NETでのWebクライアントは、私はそうのようなファイルをダウンロードするには、Webクライアントオブジェクトを使用していS3

strm = Client.OpenRead(url); 
strm.ReadTimeout = 30000; 

bool bFirst = true; 
while ((read = strm.Read(buf, 0, 2000)) > 0) 
{ 
    fout.Write(buf, 0, read); 
} 

どこS3バケットへのURLを指します。場合によっては、ダウンロードが2 GBのタイムアウトで失敗します。これはネットワーク上の問題ですか、あるいはコード内で変更できるものがありますか?

感謝しています。

+0

'fout'とは何ですか?どのようにそれを宣言していますか?失敗の署名とは何ですか? –

+2

私はIEが2GBのダウンロード制限を持っていることを知っています、それはWebClientコントロールにもあてはまりますか? –

+3

2GBは、(署名された)32ビットintで表現できる最大量であるため、非常に疑わしいです。あなたのコードやAPIがデータサイズを表すために 'int'を使用する場合、これが原因である可能性があります。 –

答えて

6

私はWebClientがファイルをメモリに読み込むと思うので、おそらくプロセスサイズの制限があります。あなたが使用したいと思う何

は、私はこれがあなたのために良い仕事と考えているWebClient.DownloadFile

です!

+0

+1スポットをオンにします。ただし、DownloadFileAsyncはチャンクイベント通知を無料で入手する方がいいでしょう。 – x0n

+1

Yeaのプログレスバーは、2ギガをダウンロードしているときより丁寧になる傾向がありますか? :) –

+0

残念ながら、これは問題を解決しませんでした。それがネットワークに関係しているかどうか確かめてください。しかし、ありがとう。 – ckg

関連する問題