0

私は Azure を学習しています。コンテナー内のファイルを正常にアップロードして一覧表示しました。以下のコードを自宅の PC で実行すると、すべて正常に動作し、例外はありませんが、職場の PC で実行すると、次のような例外が発生します。

BLOB データが破損しています。受信したバイト数が正しくない '12288' / '-1'

ファイルはローカル ドライブに問題なくダウンロードされているようですが、まったく同じコードの 2 つの異なる PC で異なる動作をする理由がわかりません。

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("My connection string");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
CloudBlockBlob blockBlob = container.GetBlockBlobReference("ARCS.TXT");
using (var fileStream = System.IO.File.OpenWrite(@"c:\a\ARCS.txt"))
{
    blockBlob.DownloadToStream(fileStream);
}
4

3 に答える 3

0

組織のファイアウォールが特定のポートをブロックしている可能性があります。同様の種類のポート関連の問題について説明するブログを書きました。そこから一度ご確認をお願い致します。http://nabaruns.blogspot.in/2012/11/common-port-related-troubleshoot-in.html

よろしくナバルン

于 2012-12-21T05:45:22.767 に答える
0

あなたのコードは正しいようです。

それは奇妙な問題です。エラーが発生した後でもファイルが適切にダウンロードされるため、さらに奇妙です。両方のマシンでAzure ストレージ エクスプローラーを使用することをお勧めします。

Azure ストレージ エクスプローラーが両方のマシンで正常に動作する場合、次のステップは、両方のマシンで SDK のバージョンを確認することです。古いバージョンの SDK では、このようなエラーが発生する可能性があります。

Commandline Downloaderを試して、問題のトラブルシューティングを行うこともできます。

注 - Azure ストレージ エクスプローラーコマンドライン ダウンローダーはオープン ソースです。それらを介したダウンロードが正常に機能する場合は、そのコードをダウンロードしてデバッグすることもできます。

于 2012-12-24T09:40:19.603 に答える
-1

CloudBlockBlobの代わりにCloudBlob.DownloadToFileまたはCloudBlob.DownloadToStreamを試すことをお勧めします

于 2012-12-20T16:38:23.503 に答える