6

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

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

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

<system.web>
  <httpRuntime executionTimeout="240" maxRequestLength="20480" />
</system.web>

问题: 如果我们允许用户上传 50-60 MB 的文件,我可以增加请求的长度到什么级别(最大大小)以及对网站的性能影响。

4

1 回答 1

5

maxRequestLength字段的“理论”最大级别是带符号的 32 位整数数据类型 ( 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 建议您遵循本文中提到的最大文件上传大小。要确定更精确的文件大小,请在与生产中使用的计算机相似的计算机上执行压力测试。

于 2013-03-06T13:46:41.197 回答