我有一個要求,使文件服務器中的文件可以通過運行在Web服務器上的應用程序進行下載。用戶將點擊應用程序頁面上的可用鏈接,並出現另存爲對話框。這種用例很常見,我可能會談論一些基本的東西,但如果有人能確認我的下列假設是否正確,我將不勝感激。ASP.NET - 流文件到客戶端佔用服務器內存嗎?
1)通過文件服務器上的文件,通過Web服務器中的虛擬目錄虛擬映射以便應用程序可以訪問(作爲鏈接),可以使用內容處置直接將其流式傳輸到客戶端(使用代碼類似於回答here),意思是不涉及任何代碼來處理或分塊文件以用於流式傳輸。
2)由於文件是從文件服務器直接流式傳輸的,因此Web服務器在內存或磁盤使用方面(當然會使用CPU)都不受影響。
感謝
這取決於如何流數據。該答案中顯示的方法會在文件傳輸時影響內存,因爲所有字節都在內存中讀取。顯示你正在使用的代碼會有所幫助。 – nunespascal 2013-03-25 07:02:06
我還沒有編寫任何代碼,但打算在我共享的鏈接中使用類似的模式顯示。實際上,我正在尋找一種方法,在文件從文件服務器下載時,不會干擾Web服務器上的內存和磁盤使用情況。你確定代碼會佔用「Web服務器」內存嗎?那令我驚訝。我的理解是,因爲它直接從文件服務器流式傳輸,它可能不佔用內存或者麻煩Web服務器磁盤。感謝並感謝您的回答。 – Lalman 2013-03-25 07:28:40
實際上,我共享的鏈接使用本地「web服務器」中的文件,但在我的情況下,我打算指向一個虛擬目錄,該目錄又指向一個文件服務器。在這種情況下,文件服務器磁盤使用量可能會增加(並且可能不是內存),但Web服務器磁盤或內存不會受到影響嗎?謝謝 – Lalman 2013-03-25 07:30:36