2012-10-18 68 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

它没有太多的“修复”,但我想我应该加上这个以防其他人有类似的问题。

事实证明,管理我们的网络交换机的人有一些设置搞砸了,我们不得不提交一个支持票证来修复它。一旦完成,一切正常。

无论如何,问题在于他们让我们的硬件以“半双工”(单向通信)运行。我不是网络人,这就是我被告知的问题。我希望如果其他人有这个问题,这可能会提醒他们检查他们的硬件设置。

相关问题