我目前有一个ASP.NET MVC项目,它具有文件上传功能,如果用户连接足够好并且文件大小合理,它的工作效果很好。
我遇到的问题是,有时用户可能有56k的连接(他们如何在这个时代与他们一起生活,我不知道)或上传更大的文件或两者的某种组合。
我希望对正常页面保持一个小的超时(大约90秒),但允许用户上传的操作有更大的超时。这只是一个动作,所以我不介意将代码置于单一动作而不是通用解决方案中。
最终,如果Request.Files.Count> 0将是最好的自动增加超时的解决方案。
我目前有一个ASP.NET MVC项目,它具有文件上传功能,如果用户连接足够好并且文件大小合理,它的工作效果很好。
我遇到的问题是,有时用户可能有56k的连接(他们如何在这个时代与他们一起生活,我不知道)或上传更大的文件或两者的某种组合。
我希望对正常页面保持一个小的超时(大约90秒),但允许用户上传的操作有更大的超时。这只是一个动作,所以我不介意将代码置于单一动作而不是通用解决方案中。
最终,如果Request.Files.Count> 0将是最好的自动增加超时的解决方案。
我不确定这是否适用于MVC项目,但您可以尝试在web.config中创建一个位置,并为上传URL设置执行超时。例如:
<location path="YourUrl">
<system.web>
<httpRuntime executionTimeout="9001"/>
</system.web>
</location>
您可能需要在web.config中增加超时:
<httpRuntime executionTimeout="01:00:00" />
现在这在子web.config文件中是可覆盖的,这意味着如果你只想为上传脚本增加超时,你可以编写一个通用的HTTP处理程序,它将处理上传并将其放在自己的子文件夹中,并带有自己的web.config。
可能的问题:如果由于零活动而没有超时,可能是因为它与内置大小限制有关,在web.config中 httpRuntime
您可以添加/增加的部分 maxRequestLength=""
达到你的尺寸限制