问题 ASP.NET MVC上传文件超时


我目前有一个ASP.NET MVC项目,它具有文件上传功能,如果用户连接足够好并且文件大小合理,它的工作效果很好。

我遇到的问题是,有时用户可能有56k的连接(他们如何在这个时代与他们一起生活,我不知道)或上传更大的文件或两者的某种组合。

我希望对正常页面保持一个小的超时(大约90秒),但允许用户上传的操作有更大的超时。这只是一个动作,所以我不介意将代码置于单一动作而不是通用解决方案中。

最终,如果Request.Files.Count> 0将是最好的自动增加超时的解决方案。


5003
2018-01-21 15:46


起源

我在拨号上。我住在牙买加。 - Shawn Mclean
什么是超时?如果你在90秒左右没有从客户端获得任何东西,你可能不会成功上传任何东西。 - chris
我不断收到数据,克里斯,但发送超过56k的10兆,将花费超过90秒。 - ckknight


答案:


我不确定这是否适用于MVC项目,但您可以尝试在web.config中创建一个位置,并为上传URL设置执行超时。例如:

<location path="YourUrl">
  <system.web>
    <httpRuntime executionTimeout="9001"/>
  </system.web>
</location>

8
2018-01-21 15:53



这很有效。如果您只想允许更大的请求到上传处理程序,您还可以在此处添加maxRequestLength(在httpRuntime标记上)。 - Chris Hynes
他的执行超时超过9000! - D-Jones


您可能需要在web.config中增加超时:

<httpRuntime executionTimeout="01:00:00" />

现在这在子web.config文件中是可覆盖的,这意味着如果你只想为上传脚本增加超时,你可以编写一个通用的HTTP处理程序,它将处理上传并将其放在自己的子文件夹中,并带有自己的web.config。


2
2018-01-21 15:52





可能的问题:如果由于零活动而没有超时,可能是因为它与内置大小限制有关,在web.config中 httpRuntime 您可以添加/增加的部分 maxRequestLength="" 达到你的尺寸限制


0
2018-01-21 21:07