我为使用 IFrame 和 ASP.NET AJAX 的 ASP.NET 网络表单编写了一个不错的小文件上传控件。
但是,在大量上传时,浏览器会在完成发布表单之前超时。
有没有办法可以增加这个?
我对替代解决方案并不感兴趣,所以请不要建议改变整个事情。它适用于 <5 meg 的上传,我只想让它达到大约 8mb。
编辑:在 Page_Load 中设置超时似乎没有改变任何东西。
我为使用 IFrame 和 ASP.NET AJAX 的 ASP.NET 网络表单编写了一个不错的小文件上传控件。
但是,在大量上传时,浏览器会在完成发布表单之前超时。
有没有办法可以增加这个?
我对替代解决方案并不感兴趣,所以请不要建议改变整个事情。它适用于 <5 meg 的上传,我只想让它达到大约 8mb。
编辑:在 Page_Load 中设置超时似乎没有改变任何东西。
您需要在 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兆文件:
<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 版的代码。它包括一个上传流模块、一个可恢复下载处理程序和基于 ASP.NET Ajax 扩展的 ASP.NET 上传控件,并且都是开源的。
如需更多信息,请访问 www.memba.com和www.velodoc.com。
我使用带有 HTML 的 PHP 解决了这个问题: