2011-09-24 52 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模塊和處理程序來有效地高效地提供文件。