2011-09-24 53 views
1

日冰全部iPhone - ASP.NET:文件恢复下载

我需要创建.NET和C#中的宁静JSON WCF Web服务方法,此WebService方法将在一对夫妇的信息perfome一些检查和验证。验证完成后,它将访问受保护的azure blob存储以获取文件并通过web服务返回文件流。

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

我已经记:

  1. web服务收到的文件字节范围请求作为参数的一部分。执行所需的验证。
  2. 根据字节范围参数从blob存储中读取文件,并将其作为临时文件存储到我的磁盘存储中。
  3. 通过web服务返回流中文件的字节。
  4. 删除临时文件。

这是一个很好的做法吗?我如何依赖Range Header获取我的场景,其中我的文件不是驻留在服务器的固定位置的静态文件?

在此先感谢! :)

回答

1

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

0

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

如果您服务使用ASP.NET MVC那么你可以使用Lib.Web.Mvc,其中包含响应范围请求ActionResults的一组自定义库动态文件。我自己使用它们,并且根本没有任何问题。

如果您通过ASP.NET Webforms或MVC提供静态文件,那么我会建议您查看Talifun-Web,它提供了一组不错的Http模块和处理程序来有效地高效地提供文件。