2

ユニバーサル Windows アプリを開発しており、Live SDK 5.6 を使用してファイルを OneDrive にアップロードしています。使用例はこちらで、バージョンに関する説明はこちらでご覧いただけます。使用する必要がある指示によると:

Windows および WP81 の場合:CreateBackgroundUploadAsyncメソッド。

WP8 Silverlight の場合:BackgroundUploadAsyncメソッド

CreateBackgroundUploadAsyncWindowsでは魅力のように機能し、正しい進行状況の値を返しますLiveOperationProgressが、WP81では常に0%の進行状況を示し、最終的には100%になります。したがって、実際には進行状況を追跡しません。

それから私はBackgroundUploadAsync(Silverlightアプリ用です)使用しようとしましたが、電話で動作します-ファイルをアップロードし、進行状況を正しく追跡します. しかし、大きなファイル (私の場合は > 150Mb) をアップロードしようとすると、ちょうど 120 秒後にアップロード操作が 0% にリセットされ、例外なく再開されることに気付きました。

Windows & WP81 アプローチのコードは次のとおりです。

var progressHandler = new Progress<LiveOperationProgress>(
                    (progress) =>
                    {
                        var res = progress.ProgressPercentage;
                    });
LiveUploadOperation uploadOperation = await liveConnectClient.CreateBackgroundUploadAsync(uploadPath, "testfile.wav", file, OverwriteOption.Rename);
LiveOperationResult uploadResult = await uploadOperation.StartAsync(new CancellationToken(), progressHandler);

Silverlight の場合:

var progressHandler = new Progress<LiveOperationProgress>(
                    (progress) =>
                    {
                        var res = progress.ProgressPercentage;
                    });
LiveOperationResult opResult = await connectClient.BackgroundUploadAsync(CurrentFolderId,
                                                                      file.Name,
                                                                      stream,
                                                                      OverwriteOption.Rename,
                                                                      record.GetCTS().Token,
                                                                      progressHandler);

質問 - 任意のサイズのファイルをアップロードし、タイムアウト (現在は 120 秒) を再定義し、Windows と WP81 の両方で進行状況を追跡するにはどうすればよいですか?

UPD:ここ で 2 分間のタイムアウトの理由を見つけました:

After the connection has been established, an HTTP request message that has not received a response within two minutes is aborted.

PUTリクエストは正常ですか?

4

0 に答える 0