我有一个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