Asp.net 在IIS中一次请求上载大文件时的内存使用情况

Asp.net 在IIS中一次请求上载大文件时的内存使用情况,asp.net,iis,file-upload,Asp.net,Iis,File Upload,我要用IIS7/8在ASP.NETMVC中实现一个网站,我需要上传大文件(几GB)。我知道我可以在web.config中更改配置,以上载最多4GB的文件。但是我有点担心内存的使用 如果我在一个请求中上传了一个3GB的文件(只使用一个包含一个表单、一个文件输入元素和一个提交元素的网页),它会消耗我服务器的3GB内存吗?或者IIS 7/8是否会自动将内容分块通过Request.InputStream传递,以便服务器端内存使用可以接受?如果是这样,我是否需要配置IIS以支持区块接收?IMO对于这些数据

我要用IIS7/8在ASP.NETMVC中实现一个网站,我需要上传大文件(几GB)。我知道我可以在web.config中更改配置,以上载最多4GB的文件。但是我有点担心内存的使用


如果我在一个请求中上传了一个3GB的文件(只使用一个包含一个表单、一个文件输入元素和一个提交元素的网页),它会消耗我服务器的3GB内存吗?或者IIS 7/8是否会自动将内容分块通过Request.InputStream传递,以便服务器端内存使用可以接受?如果是这样,我是否需要配置IIS以支持区块接收?

IMO对于这些数据量(超过1 GB),您可以使用ftp。这就是这项技术的用途。如果将asp.net控件用于如此大量的数据,这显然不是最好的方法。你也可以考虑 (小量装载)[

回答你的问题

在上载过程中,ASP.NET会在用户将文件保存到磁盘或数据库之前将整个文件加载到内存中。因此,由于Machine.config文件中processModel标记的MemoryLit属性,该过程可能会循环

如果你试图上传这么大的文件,你可能会遇到很多不同的错误

The page cannot be displayed

及 引发了System.OutOfMemoryException类型的异常

你可以在这里读更多

希望能有帮助

Server Application is Unavailable