1

SkyDriveのダウンロードプロセスに問題があり、私を助けてくれることを願っています。

標準のSkyDriveAPIと例に従って、SkyDriveフォルダー構造を参照し、ユーザーがファイルをクリックしてダウンロードを求めるプロンプトを表示するページを設定しました。すべて正しく機能します。

私が問題を抱えているのは、ダウンロードしたファイルが大きい場合、100Mbマーク付近でOutOfMemoryExceptionがスローされることです。

デニスはここhttp://dotnet.dzone.com/articles/2-things-you-should-considerでこの問題について話しますが、SkyDriveアーキテクチャを介さずに直接URLをダウンロードすることに関係しています。

SkyDriveからURLを抽出し、その方法で直接ダウンロードしようとしましたが、成功しませんでした。

これが私が使用しているコードです-「item」オブジェクトはSkyDriveItemタイプであり、フォルダーのコンテンツを繰り返し処理してこのファイルを選択しました。

LiveConnectClient downloadClient = new LiveConnectClient(App.Session);
                    try
                    {
                        downloadClient.DownloadCompleted += new EventHandler<LiveDownloadCompletedEventArgs>(downloadClient_DownloadCompleted);
                        downloadClient.DownloadProgressChanged += new EventHandler<LiveDownloadProgressChangedEventArgs>(downloadClient_DownloadProgressChanged);
                        downloadClient.DownloadAsync(item.ID + "/content", item);

これは、ファイルが大きすぎない場合は正常に機能しますが、前述のように、大きなファイル(> 100Mb)を選択すると、OutOfMemory例外で終了します。

ポインタはありますか?

前もって感謝します

4

1 に答える 1

2

解決済み-downloadClient.DownloadAsync()メソッドを使用して大きなファイルをダウンロードすることはできませんでしたが、downloadClient.getAsync()を操作し、通常のStreamダウンローダーを介して事前認証されたURLを使用するとうまくいきます。

于 2012-06-26T00:14:10.423 に答える