iOS应用程序崩溃,显示“内存不足”,需要帮助。

3
我有一个使用MonoTouch制作的iPhone/iPad应用程序,已经在苹果商店上架。然而,仍存在一个未完全解决的问题。我需要能够上传大文件到我们的服务器。文件大小可能在2-100 Mb之间变化。我尝试了几种方法:
  1. 使用SOAP Web服务发送字节数组:a)发送整个文件。崩溃了。b)将其分成1Mb的块。在10-15个块后崩溃(不同情况不同)。
  2. 使用WebClient.UploadFile。对于小于5 Mb的较小文件,大多数时间都可以工作,但每隔一段时间就会崩溃,并且所有大于10-12 Mb的文件都会崩溃。在服务器上,我有一个aspx页面通过POST接收发送的信息。
以下是设备上的实际代码:
WebClient wc = new WebClient ();
string sLFN = sLocalFileName;
FileInfo fi = new FileInfo (sLFN)
string sUri = getUri ();
byte [] f = wc.UploadFile (sUri, sLFN)

我认为iPhone / iPad的内存容量直接影响这个问题。你有什么建议或推荐的方法吗?谢谢。Edgar Herrador

你好,埃德加。你解决了这个问题吗?因为我在我的一个应用程序中使用了WebClient.UploadFile,并且它在大多数客户端上都能正常工作,但是有一个客户报告说在发送文件时应用程序崩溃了。被发送的文件是在iPad上拍摄的照片,所以它们的大小远小于5Mb,但仍然出现了错误。 - BruceHill
2个回答

1
我建议使用流式传输和分块传输。当传递大文件时,您可能会超过消息大小限制。
您是否遇到任何异常?

那是我的第一种方法:将数据分成1Mb大小的块。在拆分10-15个块后崩溃了。 - Edgar Herrador
嗨,埃德加,你有遇到任何异常吗?你的服务器端处理文件的方法是什么?它是基于WCF的吗?你使用流吗? - Maciek

0
你尝试过使用WCF流传输吗?(http://msdn.microsoft.com/en-us/library/ms733742.aspx)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接