【发布时间】:2010-09-18 10:25:23
【问题描述】:
我为使用 IFrame 和 ASP.NET AJAX 的 ASP.NET 网络表单编写了一个不错的小文件上传控件。
但是,在大量上传时,浏览器在完成表单发布之前会超时。
有什么办法可以增加这个吗?
我对替代解决方案并不感兴趣,所以请不要建议改变整个事情。它适用于
编辑:在 Page_Load 中设置超时似乎并没有改变任何东西。
【问题讨论】:
标签: asp.net file-upload
我为使用 IFrame 和 ASP.NET AJAX 的 ASP.NET 网络表单编写了一个不错的小文件上传控件。
但是,在大量上传时,浏览器在完成表单发布之前会超时。
有什么办法可以增加这个吗?
我对替代解决方案并不感兴趣,所以请不要建议改变整个事情。它适用于
编辑:在 Page_Load 中设置超时似乎并没有改变任何东西。
【问题讨论】:
标签: asp.net file-upload
您需要在 IIS6 及更高版本上更新元数据库设置。键是“AspMaxRequestEntityAllowed”,以字节表示。我强烈建议使用 Metabase Explorer 进行更改,但可以通过 %systemroot%\system32\inetserv\metabase.xml 中的 XML 进行更改。
元数据库浏览器:http://support.microsoft.com/kb/840671
嗯,也许我找错了树……如果没有调整,你就不会做 5 MB 的文件。
又一次尝试:查看您的 web.config:
<system.web>
<httpRuntime maxRequestLength="10240" executionTimeout="360"/>
</system.web>
最大请求长度以千字节为单位,执行超时以秒为单位。
【讨论】:
把它放在你的 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 字节的数据。
【讨论】:
在 Page_Load 中,将 Server.ScriptTimeout 设置为适合您的值。我相信以秒为单位。
【讨论】:
我想你可能需要调整MaxRequestLength
我认为它在 Web.config 中默认为 4megs。
以下将允许 ~10 meg 文件:
<httpRuntime maxRequestLength="10240" />
【讨论】:
打开您的 Web.config 文件,在 <system.web> 标签下方添加以下标签:
<httpRuntime
executionTimeout="90"
maxRequestLength="4096"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
enableVersionHeader="true"
/>
现在,看看<httpRuntime> 标签的 maxRequestLength="4096" 属性。您可能已经意识到,您需要做的就是将该值更改为您选择的其他值(8192 为 8 Mb,16384 为 16 Mb,65536 为 64 Mb,等等...)。
【讨论】:
查看Velodoc XP Edition的代码。它包括一个上传流模块、一个可恢复的下载处理程序和基于 ASP.NET Ajax 扩展的 ASP.NET 上传控件,并且都是开源的。
更多信息请查看www.memba.com 和www.velodoc.com。
【讨论】:
我使用带有 HTML 的 PHP 解决了这个问题:
【讨论】: