Клиент UploadWebFile SkyDrive .Net API

Это мой код для загрузки файла резервной копии базы данных в SkyDrive. Программа прерывается на последней строке при попытке загрузки с помощью функции UploadWebFile. /Backups это папка на SkyDrive. Я использую SkyDrive .Net API Client 2.0.2b.

Исключение:

Запрос был прерван: Запрос был отменен.

Это проблема с синтаксисом или что-то еще, как решить?

var client = new SkyDriveServiceClient();

client.LogOn("username", "password");

WebFolderInfo webInfo = new WebFolderInfo();
webInfo.Path = "/Backups";

client.UploadWebFile(@"D:\db.bak", webInfo);

person Ivan Tanasijevic    schedule 21.02.2012    source источник


Ответы (2)


Не думайте, что это синтаксическая ошибка, но, учитывая, что вы говорите о резервном копировании БД, я думаю, что это проблема размера файла. Максимальный размер файла, который вы можете загрузить на SkyDrive, должен быть примерно 50MB.

Проверьте размер вашего файла.

person Tigran    schedule 21.02.2012
comment
Это менее 50 МБ, это небольшая база данных. - person Ivan Tanasijevic; 21.02.2012
comment
Я пытаюсь сейчас с файлом txt и получаю сообщение об ошибке: Удаленный сервер вернул ошибку: (501) Не реализовано. - person Ivan Tanasijevic; 21.02.2012
comment
@IvanTanasijevic: может быть, на данный момент каталог, на который вы ссылаетесь, не существует или относительный путь, указывающий на него, неверен? - person Tigran; 21.02.2012
comment
Каталог существует, но, возможно, путь неверен. Этот путь я получаю с помощью WebFolderItemInfo [] infoFolder = client.ListRootWebFolderItems(); - person Ivan Tanasijevic; 21.02.2012
comment
Как найти реальный путь к папкам, я думаю, это проблема. - person Ivan Tanasijevic; 21.02.2012

Вот решение. Проблема заключалась в том, что мы не можем создать WebFolderInfo и указать путь вручную. Мы должны ссылаться на папку из списка WebFolderInfo[]. Для client.Timeout придайте большое значение тому, чтобы большие файлы успевали загружать.

        var client = new SkyDriveServiceClient();

        client.LogOn("username", "password");        
        WebFolderInfo wfInfo = new WebFolderInfo();

        WebFolderInfo[] wfInfoArray = client.ListRootWebFolders();

        wfInfo = wfInfoArray[0];
        client.Timeout = 1000000000;
        client.UploadWebFile(@"D:\db.bak", wfInfo);
person Ivan Tanasijevic    schedule 21.02.2012