Я использую API BackgroundUploadAsync
для загрузки файла в OneDrive. В большинстве случаев функция работает нормально, но иногда возвращается вызов с этим сообщением об ошибке:Как решить ошибку BackgroundUploadAsync?
система занята с предыдущим фоном Загрузить ...
Я попытался закрыть и перезапустить приложение, но я все еще получаю ту же ошибку.
Любая идея, почему это происходит? Как я могу повторно инициализировать соединение с OneDrive?
Вот код, чтобы сделать загрузки:
public static async Task<string> BackgroundUploadFile<T>(
string skydriveFolderId,
T objectToSerialize,
string fileNameInSkyDrive,
BackgroundTransferPreferences backgroundTransferPreferences =
BackgroundTransferPreferences.AllowCellularAndBattery)
{
string fileId = string.Empty;
try
{
var storageFolder = await GetSharedTransfersFolder();
StorageFile isolatedstorageFile = await storageFolder.CreateFileAsync(
fileNameInSkyDrive,
CreationCollisionOption.ReplaceExisting);
using (var writer = new StreamWriter
(await isolatedstorageFile.OpenStreamForWriteAsync()))
{
// convert to string
var _String = Serialize(objectToSerialize);
await writer.WriteAsync(_String);
}
Client.BackgroundTransferPreferences = backgroundTransferPreferences;
LiveOperationResult liveOpResult = await Client.BackgroundUploadAsync(
skydriveFolderId,
new Uri("/shared/transfers/" + fileNameInSkyDrive, UriKind.Relative),
OverwriteOption.Overwrite);
fileId = (string)liveOpResult.Result["id"];
Debug.WriteLine("BackgroundUploadFile: " + fileNameInSkyDrive);
}
catch (Exception e)
{
MessageBox.Show(e.Message, "Upload Error", MessageBoxButton.OK);
Debug.WriteLine("\nError - BackgroundUploadFile: " + e.Message);
}
return fileId;
}
Кроме того, у меня есть «подозрение», что OneDrive является блокировка аккаунта, так как фоновые задачи, которые «застряли» и OneDrive не выпускает/бесплатно их ?!
Скорее всего, вы выдаете новый вызов «BackgroundUploadAsync», пока «Задача», возвращенная предыдущим вызовом, все еще находится на рассмотрении. Вам нужно опубликовать фактический код, чтобы продолжить его. – Noseratio
Включил код загрузки. –