防止大文件上载时浏览器超时

时间:2008-10-21 22:22:40

标签: asp.net file-upload

我为ASP.NET webforms编写了一个很好的小文件上传控件,它使用了IFrame和ASP.NET AJAX。

但是,在大型上传中,浏览器会在完成发布表单之前超时。

有没有办法增加这个?

我对替代解决方案并不感兴趣,所以不要建议改变整个问题。它适用于< 5 meg上传,我只想把它增加到大约8mb。

编辑:在Page_Load中设置超时似乎没有任何改变。

7 个答案:

答案 0 :(得分:10)

您需要在IIS6及更高版本上更新配置数据库设置。关键是“AspMaxRequestEntityAllowed”并以字节表示。我强烈建议使用Metabase Explorer进行更改,尽管可以在%systemroot%\ system32 \ inetserv \ metabase.xml中浏览XML。

Metabase Explorer:http://support.microsoft.com/kb/840671

嗯,也许我正在咆哮错误的树...如果还没有调整,你就不会做5 MB的文件。

另一个问题:看看你的web.config:

<system.web>
  <httpRuntime  maxRequestLength="10240" executionTimeout="360"/>
</system.web>

最大请求长度以千字节为单位,执行超时以秒为单位。

答案 1 :(得分:3)

将其放在您的web.config

  <system.web>
     <httpRuntime executionTimeout="360" maxRequestLength="100000" />

一次启用360秒超时和100,000 Kb上传数据。

如果不起作用,请在IIS服务器上运行此命令。 (替换[IISWebsitename])

C:\Windows\System32\inetsrv>appcmd set config "[IISWebsitename]" -section:requestFiltering -requestLimits.maxAllowedContentLength:100000000 -commitpath:apphost

一次启用100,000,000字节的上传数据。

答案 2 :(得分:2)

在Page_Load中,将Server.ScriptTimeout设置为适合您的值。我相信在几秒钟内测量。

答案 3 :(得分:1)

我认为您可能需要调整MaxRequestLength

它在Web.config中我认为默认是4megs。

以下将允许~10 meg文件:

<httpRuntime maxRequestLength="10240" />

答案 4 :(得分:1)

打开您的Web.config文件,在@property (strong, nonatomic) UIWindow *window; @property (strong,nonatomic) FMDatabase *database; @property (nonatomic,strong)NSArray *dirPaths; @property (nonatomic,strong)NSString *docsDir; 标记下方添加以下标记:

from selenium import webdriver from selenium.webdriver.common.keys import Keys import time from bs4 import BeautifulSoup path = "C:\\Python27\\chromedriver\\chromedriver" driver = webdriver.Chrome(executable_path=path) # Open Chrome driver.get("http://www.thehindu.com/") # 10 Second Delay time.sleep(10) elem = driver.find_element_by_id("searchString") # Enter Keyword elem.send_keys("unilever") elem.send_keys(Keys.RETURN) time.sleep(10) # Problem Here page = driver.page_source soup = BeautifulSoup(page, 'lxml') print soup

现在,看看maxRequestLength =&#34; 4096&#34; <system.web>标记的属性。您可能已经意识到,您需要做的就是将值更改为您选择的其他值(对于8 Mb为8192,对于16 Mb为16384,对于64 Mb为65536,依此类推......)。

答案 5 :(得分:-6)

检查Velodoc XP Edition的代码。它包括一个上传流模块,一个可恢复的下载处理程序和基于ASP.NET Ajax扩展的ASP.NET上传控件,它都是开源的。

有关详情,请查看www.memba.comwww.velodoc.com

答案 6 :(得分:-6)

我使用PHP和HTML解决了这个问题:

  1. 我开始会话
  2. 进入循环
  3. 创建一个循环,重新加载执行部分作业的页面 时间
  4. 直到工作完成
  5. 循环中的代码执行作业的一部分
  6. 增加会话变量以指向作业的下一部分
  7. 使用java脚本重新加载页面//这将重新启动服务器 页面计时器
  8. 加载页面以报告作业已完成
相关问题