2016-04-16 3 views
0

ダウンロードユーティリティの一時停止/再開機能を追加しようとしていますが、HttpWebRequest.Addrange()メソッドが正しく動作しないようです。私はそれをダウンロードを再開するために使用しようとしましたが、webresponseは常に私のアプリを実行するたびに、ファイルの先頭から開始します。以下はHttpWebRequestダウンロードは常にファイルの先頭から再開しません

私のコードです:

以下
var request = (HttpWebRequest)HttpWebRequest.Create(url); 
    request.AddRange((int)iExistLen); 
    var downloadStream = request.GetResponse().GetResponseStream(); 
    for (int byteSize = 0; (byteSize = fileProvider.Read()) > 0;) 
      { 
       downloadStream.Read(buffer, 0, buffer.Length); 
      }; 

は、私のダウンロードURLです: https://mathinew.blob.core.windows.net/sharedfolder/testfile006.txt

誰もが同様の問題、あるいは私が間違ってここに

+0

こんにちは、あなたのサーバーはこの機能をサポートしていますか?すべてのサーバーがサポートしているわけではありません – BHuelse

+0

Azureサポート範囲ヘッダーですが、デフォルトでは使用できません。このスレッドを参照してくださいhttp://stackoverflow.com/questions/17408927/do-http-range-headers-work-with-azure-blob-storage-shared-access-signatures – Kalten

答えて

1
をやっているものに直面した場合は私に知らせてください

URLから、Azure Blob Storageを使用していることがわかります。デフォルトでは

それはRangeヘッダーを尊重しないし、例えば、x-ms-versionヘッダを使用して、それを動作させるために2011年8月18日以降にバージョンを設定する必要があります。

request.Headers["x-ms-version"] = "2011-08-18"; 

することができますRangeヘッダーがデフォルトで動作するようにバージョンをグローバルに設定するには、this questionthis MSDN pageをチェックしてください。

+0

ありがとう@argaz、それはうまく動作しますが、これは私のクライアントツールはURLがIIS/Azure Blob/etcのためであることを知らないので、Azure blobまたはcommonのすべてのURLタイプにのみ適用されるヘッダーです。すべてのタイプのURL、任意の提案またはそれ以上のコードを記述したいヘッダーを設定する必要がありますか? – Mathiyazhagan

+0

x-ms-versionはAzure BLOBに固有です。他のほとんどのサーバーでは、サーバーがまったくサポートしていない限り、Rangeヘッダーが機能します。 – argaz

関連する問題