2012-10-18 117 views
0

我有一個ASP.NET Web應用程序,它部分允許用戶上傳(和下載)文檔。上傳也不太好,但我的下載對話框有一個嚴重的問題,我不知道爲什麼。下載對話花費很長時間在ASP mvc應用程序中加載

這些文件存儲在與代碼不在同一臺機器上的共享中。 我正嘗試使用文件過載文件(位置,mimetype,displayname)通過FilePathResult發送下載。

當用戶點擊下載鏈接時,它會打開一個新的空白頁面並開始加載動畫,但在顯示保存/下載對話框之前,對於較大的文件(高達25 MB)將持續好幾分鐘,然後大約需要5秒鐘才能真正下載文件。

我獵捕和追殺,至今我「已經找到的唯一的事情就是FilePathResult應該沒有緩衝內存中的文件,而是簡單地交出文件給用戶下載。

有誰有什麼洞察力,爲什麼它需要一個好的(定時的)5m 45s才能在只有24 MB的文件上顯示下載對話框?我覺得IIS或asp在某個地方預先加載文件時,它不應該是,並且即使是對於這樣一個小文件太多時間......

參考:

 public FilePathResult DownloadFile(int id) 
     { 
      var file = _fileService.GetByIdForUser(id, base.LoggedInUserId); 

      return File(file.Location, UploadedFileManager.DetermineContentTypeFrom(file.Extension), file.Name); 
     } 
+0

你看過認證?這聽起來像是我的憑證驗證。 –

+0

您是否測量了'_fileService.GetByIdForUser'方法調用所花費的時間? –

+0

無需任何時間拉出任何較小的文件(例如1mb以下),所以我無法想象這是一個驗證問題。 服務調用只是一個數據庫調用;它幾乎沒有時間拉起記錄(這隻存儲文檔描述,ID和用戶外鍵)。 – Kneemin

回答

0

它沒有太多的「修復」,但我想我應該加上這個以防其他人有類似的問題。

事實證明,管理我們的網絡交換機的人有一些設置搞砸了,我們不得不提交一個支持票證來修復它。一旦完成,一切正常。

無論如何,問題在於他們讓我們的硬件以「半雙工」(單向通信)運行。我不是網絡人,這就是我被告知的問題。我希望如果其他人有這個問題,這可能會提醒他們檢查他們的硬件設置。

相關問題