我将使用IIS7 / 8在ASP.NET MVC中实现一个网站,我需要上传大文件(几GB)。我知道我可以在web.config中更改配置以上传最多4GB的文件。但我对内存使用情况有点担心。
如果我在一个请求中上传了一个3GB的文件(只使用一个表单的网页,一个文件输入元素和一个提交元素),它会占用我服务器的3GB内存吗?或者IIS 7/8会自动通过块中的Request.InputStream传递内容,以便服务器端内存使用可以接受吗?如果是这样,我是否需要配置IIS以支持块接收?
答案 0 :(得分:3)
IMO可以使用ftp这样的数据量(超过1 GB)。这就是这项技术的用途。如果你将使用asp.net控件来获取这么大量的数据根本就不是最好的方法。你也可以考虑一下 (NeatUpload)[http://neatupload.codeplex.com
回答你的问题
在上载过程中,ASP.NET将整个文件加载到内存中,然后用户可以将文件保存到磁盘或数据库中。因此,由于Machine中processModel标记的memoryLimit属性,该过程可能会重新循环。配置文件。
如果您尝试上传这么大的文件,可能会收到很多不同的错误
The page cannot be displayed
和
Server Application is Unavailable
和 抛出了System.OutOfMemoryException类型的异常。
您可以在此处阅读更多内容http://support.microsoft.com/kb/323246
希望它会有所帮助