ASP.NET文件上载控件允许的最大文件大小

我在ASP.Net中使用文件上传控件,遵循以下博客方法。

http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx

4MB默认值在machine.config中设置,但您可以在web.config中覆盖它。 例如,要将上传限制扩展到20MB,您可以这样做:

   

问题:如果我们允许用户上传50-60 MB文件,那么我可以增加所请求的长度以及对网站的性能影响。

maxRequestLength字段的“理论”最大级别是带符号的32位整数数据类型( Int32.MaxValue )的Int32.MaxValue

但是,您必须测试上传才能了解您的效果。

编辑:

从Microsoft支持票证 :

从理论上讲,最大文件上传大小相当大。 但是,由于ASP.NET运行状况监视,您无法在ASP.NET中上载非常大的文件。 ASP.NET辅助进程的虚拟地址空间为2千兆字节(GB)。 但是,由于运行状况监视和内存碎片,ASP.NET辅助进程仅使用略多于1 GB的进程。

在上载过程中,ASP.NET会在用户将文件保存到磁盘之前将整个文件加载到内存中。 因此,由于Machine.config文件中processModel标记的memoryLimit属性,该进程可能会回收。 memoryLimit属性指定ASP.NET工作进程在自动回收进程之前可以耗尽的物理内存百分比。 回收可防止内存泄漏导致ASP.NET崩溃或停止响应。

此外,其他因素在可上载的最大文件大小中起作用。 这些因素包括可用内存,可用硬盘空间,处理器速度和当前网络流量。 由于正在上载文件的流量,Microsoft建议您使用10到20兆字节(MB)范围内的最大文件大小。 如果您很少上传文件,则最大文件大小可能为100 MB。

注意您可以在ASP.NET中上载大于100 MB的文件。 但是,Microsoft建议您遵循本文中提到的最大文件上载大小。 要确定更精确的文件大小,请在与生产中使用的计算机类似的计算机上执行压力测试。