我将扩展我对您的问题的回答,以考虑其他可能的情况。
学习上传大文件的一个很好的链接是:
http ://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx
Jon Galloway 在这里解释了解决这个问题的最佳技术:
1.-更改机器配置或web.config:
<system.web>
<httpRuntime executionTimeout="240" maxRequestLength="20480" />
</system.web>
在这里,您不仅要更改 maxRequestLength,而且还必须为 executionTimeout 提供更多的秒数。
有趣的事情:考虑到这个设置的值在调试模式下被忽略了。.NET Framework 2.0 中的默认值为 110 秒。在 .NET Framework 1.0 和 1.1 中,默认值为 90 秒。
2.-谈真正的解决方案,HttpModules喜欢免费的NeatUpload
3.-解释另一种更直观的上传方式:Silverlight或flash swfupload
4.-他谈到了 II7 的一个限制。在此页面http://www.telerik.com/help/aspnet-ajax/upload_uploadinglargefiles.html您可以找到更多有趣的 IIS 7 设置,最大设置为 100 兆。您添加:
<system.webServer>
...
<security >
<requestFiltering>
<requestLimits maxAllowedContentLength="1024000000" />
</requestFiltering>
</security>
</system.webServer>
您必须打开文件 C:\Windows\System32\inetsrv\config\applicationHost.config 并找到以下行:
<section name="requestFiltering" overrideModeDefault="Deny" />
更改为:
<section name="requestFiltering" overrideModeDefault="Allow" />
Galloway 提到的另一个有趣的事情是:“在 ASP.NET 1.0 和 1.1 中,整个文件在写入磁盘之前被加载到内存中。在 ASP.NET 2.0 中进行了改进,可以在上传过程中将文件流式传输到磁盘。”
对于 IIS6,Chris 给出的解决方案我认为是合适的:
http://www.banmanpro.com/support2/File_Upload_limits.asp
另一个来源:
http://www.telerik.com/support/kb/aspnet-ajax/upload/page-not-found-error-when-uploading-large-files-on-win2003.aspx
另一个用户在这里测试了很多组件的 URL:
http://remy.supertext.ch/2008/01/file-upload-with-aspnet/
他提到了一个代码项目项目(!),这是另一个使用大文件和闪存的非常好的例子:
http://www.codeproject.com/KB/aspnet/FlashUpload.aspx