iPhone - ASP.NET:继续下载文件

时间:2011-09-24 23:10:00

标签: iphone .net wcf web-services download

Hihi all,

我需要使用.NET和c#创建一个安静的json wcf webservice方法,这个webservice方法将获取一些信息来完成一些检查和验证。验证完成后,它将访问受保护的azure blob存储以获取文件并通过Web服务返回文件流。

现在我有一个iphone应用程序来使用web服务来下载文件,但文件大小可能足够大,下载过程可能会在完成之前中断。什么应该是处理简历下载机制的最佳方式?

我的想法是:

  1. webservice接收带有文件字节范围的请求作为参数的一部分。执行所需的验证。
  2. 根据字节范围参数从blob存储中读取文件,并将其作为临时文件存储到我的磁盘存储中。
  3. 通过webservice返回流中文件的字节。
  4. 删除临时文件。
  5. 这是一个很好的方法吗?如何依赖我的场景的范围标题,我的文件不是驻留在服务器中固定位置的静态文件?

    提前致谢! :)

2 个答案:

答案 0 :(得分:1)

完全避免使用WCF。使用ASP.NET Generic handler进行此操作,HTTP Chunked encoding使用HTTP Range header进行请求数据流的特定部分。这正是HTTP标准为此场景提出的机制,而通用处理程序是实现这一目标的最简单方法。 WCF只会带来很多不必要的东西,并使其变得更加复杂。

答案 1 :(得分:0)

如果使用ASP.NET WebForms提供动态文件,可以查看实现自定义Http Handler like the one described in this article by DotNetSlackers

如果使用ASP.NET MVC提供动态文件,则可以使用Lib.Web.Mvc,这是一个包含一组自定义ActionResults的库,可响应范围请求。我自己使用它们并且完全没有问题。

如果您通过ASP.NET Webforms OR MVC提供静态文件,那么我建议您查看Talifun-Web,它提供了一组很好的Http模块和处理程序,可以有效地为文件提供服务。