我有一個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);
}
你看過認證?這聽起來像是我的憑證驗證。 –
您是否測量了'_fileService.GetByIdForUser'方法調用所花費的時間? –
無需任何時間拉出任何較小的文件(例如1mb以下),所以我無法想象這是一個驗證問題。 服務調用只是一個數據庫調用;它幾乎沒有時間拉起記錄(這隻存儲文檔描述,ID和用戶外鍵)。 – Kneemin