locked
Отправка файла в SkyDrive. Не отправляются файлы в фоне. В чем проблема? RRS feed

  • Вопрос

  • Добрый день.

    Подскажите в чем может быть проблема. Обычная асинхронная закачка файла на SkyDrive - работает, а вот фоновая отправка для больших файлов - нет.

    Исходный код:

    public async static Task SendToSkyDrive(Stream fileStream, string fileName, long size, Uri file = null) { var auth = new LiveAuthClient("KEY"); LiveLoginResult result = await auth.InitializeAsync(new string[] { "wl.basic", "wl.offline_access", "wl.skydrive_update", "wl.signin" }); if (result.Status != LiveConnectSessionStatus.Connected) result = await auth.LoginAsync(new string[] { "wl.basic", "wl.offline_access", "wl.skydrive_update", "wl.signin" }); if (result.Status == LiveConnectSessionStatus.Connected) { string folderId = string.Empty; if (AppSettings.TryGetSetting<string>("folder", out folderId)) { var ctsUpload = new System.Threading.CancellationTokenSource(); LiveConnectClient liveClient = new LiveConnectClient(result.Session); liveClient.BackgroundTransferPreferences = BackgroundTransferPreferences.AllowCellularAndBattery; Progress<LiveOperationProgress> uploadProgress = new Progress<LiveOperationProgress>( (p) => { Debug.WriteLine("{0}/{1} bytes uploaded ({2}%)", p.BytesTransferred.ToString("0,0"), p.TotalBytes.ToString("0,0"), p.ProgressPercentage.ToString("0,0")); }); LiveOperationResult res2; if (size < 140000) { //Для небольших файлов res2 = await liveClient.UploadAsync(folderId, fileName, fileStream, OverwriteOption.Overwrite); } else { res2 = await liveClient.BackgroundUploadAsync(folderId, file, OverwriteOption.Overwrite, ctsUpload.Token, uploadProgress); } if (res2.Result != null) {

    } } } }


    6 августа 2013 г. 10:48

Ответы

  • Через отладчик пробовали пропускать?

    Да собственно проблема была в том что файл для закачки был открыт.  Закрыл файл и все полетело.
    • Помечено в качестве ответа V.A.Zolotov 15 августа 2013 г. 13:41
    15 августа 2013 г. 13:40

Все ответы

  • Здравствуйте

    Выходит исключение или просто не грузит?

    • Изменено Bandurist 7 августа 2013 г. 8:48 )
    7 августа 2013 г. 8:48
  • Здравствуйте

    Выходит исключение или просто не грузит?

    Добрый день.

    Просто не грузит, исключений никаких.

    В отладочной консольке пишет что прогрес на нуле, ну и все.

    7 августа 2013 г. 11:19
  • Где-то читал, что он liveClient.BackgroundUploadAsync работает только 10 секунд после блокировки устройства, но

    тут пишут, что должно работать:

    Begins uploading a file from Windows Phone isolated storage to Microsoft SkyDrive. The file upload should continue even if the app that starts the file upload quits or is suspended.

    Затрудняюсь помочь, можете попробовать спросить в Live Connect, может там ребята что-то подскажут...

    8 августа 2013 г. 10:58
  • Где-то читал, что он liveClient.BackgroundUploadAsync работает только 10 секунд после блокировки устройства, но

    тут пишут, что должно работать:

    Begins uploading a file from Windows Phone isolated storage to Microsoft SkyDrive. The file upload should continue even if the app that starts the file upload quits or is suspended.

    Затрудняюсь помочь, можете попробовать спросить в Live Connect, может там ребята что-то подскажут...

    теперь exception вылетел:

    An exception of type 'System.IO.FileLoadException' occurred in Microsoft.Phone.ni.dll and wasn't handled before a managed/native boundary
    An exception of type 'System.IO.FileLoadException' occurred in Microsoft.Phone.ni.dll and wasn't handled before a managed/native boundary
    A first chance exception of type 'System.IO.FileLoadException' occurred in mscorlib.ni.dll
    An exception of type 'System.IO.FileLoadException' occurred in mscorlib.ni.dll and wasn't handled before a managed/native boundary
    A first chance exception of type 'System.IO.FileLoadException' occurred in mscorlib.ni.dll
    An exception of type 'System.IO.FileLoadException' occurred in mscorlib.ni.dll and wasn't handled before a managed/native boundary
    exeption The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0x80070020)
    Судя по MSDN, не подружается какая-то сборка
    Как определить какая сборка не загружается?

    12 августа 2013 г. 15:42
  • Через отладчик пробовали пропускать?

    15 августа 2013 г. 13:35
  • Через отладчик пробовали пропускать?

    Да собственно проблема была в том что файл для закачки был открыт.  Закрыл файл и все полетело.
    • Помечено в качестве ответа V.A.Zolotov 15 августа 2013 г. 13:41
    15 августа 2013 г. 13:40