2011-12-06 20 views
3

我們希望允許用戶從ASP.NET MVC2系統下載大型文件。在IIS + ASP.NET(MVC)中提供大量下載的指導

我們通過Controller.File方法提供文件,該方法從FileStream流到Response.OutputStream。 我們使用Controller.File而不是提供直接鏈接的原因是我們需要驗證登錄(Forms身份驗證)用戶的安全規則。

這樣做時最大的關注點是什麼?

  • 安全:我們可能會需要增加executionTimeout。這是否暴露了安全問題?
  • 內存:我認爲,由於Controller.File是直接從磁盤流內容,幾乎沒有內存影響。
  • CPU:我在各種博客上看到,在cpu上提供大量下載是沉重的,但這些都是未經證實的陳述,所以我沒有找到來自MS的任何建議。
  • 網絡:有多少個併發下載是可能的?我們可以加油嗎,這樣其他交通不會受到阻礙嗎?
  • 其他

您的建議是什麼?

除了通過ASP.NET管道以外,還有哪些其他選項,但仍爲我們提供了驗證登錄用戶所需的數據。據說ISAPI可以減少CPU和內存,這裏可能還有其他一些優勢嗎?

有沒有關於這方面的任何(官方)指南或最佳實踐?

+0

我有同樣的要求。你有沒有找到一個好的解決方案呢?你現在可以自己回答這個問題嗎?謝謝。 –

回答

0

我會尋找異步做到這一點。確保緩衝被關閉,這樣你的數據被髮送到客戶端而不是asp等待你完成。如果你已經在流媒體,那麼這是件好事。我假設你的意思是從文件流中讀取x個字節並將這些字節寫入輸出流,重複直到EOF。

我不知道任何指導方針,我可以指出你。以上來自我自己的經驗。