Помощь при сбое приложения iOS с помощью «Недостаточно памяти» - PullRequest
3 голосов
/ 24 февраля 2011

У меня есть приложение для iPhone / iPad, сделанное в MonoTouch, которое уже есть в магазине Apple. Однако есть еще проблема, которая не была полностью решена. Мне нужно иметь возможность загружать большие файлы на наши серверы. Размеры могут варьироваться от 2 до 100 Мб. Я пробовал несколько подходов:

  1. Используя SOAP Web Services, отправка байтового массива: a) Отправка всего файла. Разбился. б) Расщепление на куски по 1Мб. Разбился после 10-15 кусков (варьируется).

  2. Использование WebClient.UploadFile. Большую часть времени работает с файлами меньшего размера <5 МБ, но время от времени происходит сбой и происходит сбой всего, что превышает 10-12 МБ. На сервере у меня есть страница aspx, которая получает информацию, отправленную через POST </p>

Вот актуальный код с устройства:

WebClient wc = new WebClient ();
string sLFN = sLocalFileName;
FileInfo fi = new FileInfo (sLFN)
string sUri = getUri ();
byte [] f = wc.UploadFile (sUri, sLFN)

Я считаю, что объем памяти iPhone / iPad напрямую влияет на это.

Есть ли у кого-нибудь рекомендация или предлагаемый подход, которому я должен следовать?

Заранее спасибо

Эдгар Эррадор

Ответы [ 2 ]

1 голос
/ 24 февраля 2011

Я бы рекомендовал использовать Streaming & Chunking. Возможно, вы превышаете размер сообщения при передаче больших файлов.

Вы получаете какие-либо исключения?

0 голосов
/ 25 февраля 2011

Вы пробовали потоковую передачу WCF (http://msdn.microsoft.com/en-us/library/ms733742.aspx)?

...