C# 上载文件时内存不足

C# 上载文件时内存不足,c#,asp.net,file-upload,plupload,C#,Asp.net,File Upload,Plupload,我的代码: int chunk = Request["chunk"] != null ? int.Parse(Request["chunk"]) : 0; string fileName = Request["name"] != null ? Request["name"] : string.Empty; Response.Write(Request.Files.Count); HttpPostedFile fileUpload = Request.Files[0]; var uploadPa

我的代码:

int chunk = Request["chunk"] != null ? int.Parse(Request["chunk"]) : 0;
string fileName = Request["name"] != null ? Request["name"] : string.Empty;
Response.Write(Request.Files.Count);
HttpPostedFile fileUpload = Request.Files[0];

var uploadPath = Server.MapPath("~/uploaded-files");
if (Request.QueryString["originals"] == "yes")
{
    using (var fs = new FileStream(Path.Combine(uploadPath, fileName), chunk == 0 ? FileMode.Create : FileMode.Append))
    {
        var buffer = new byte[fileUpload.InputStream.Length];
        fileUpload.InputStream.Read(buffer, 0, buffer.Length);
        fs.Write(buffer, 0, buffer.Length);
    }
}
我得到一个“System.OutOfMemoryException”错误

我的机器有4千兆内存。所讨论的文件大约为1 GB。我正在使用plUpload进行上传


我已经启用了3GB交换机。没有区别。我有很多可用的RAM,为什么我的内存不足?是否有一种使用更少内存的替代方法?

另一种实现方法是在HttpPostedFile上使用:

fileUpload.SaveAs(Path.Combine(uploadPath, fileName));

分块读写,而不是一次全部读写?试着为x64平台目标编译。你是否弄乱了配置中的httpRuntime设置?HttpPostedFile应该在超过256KB时缓冲到磁盘,除非您提高了requestLengthDiskThreshold。我将研究区块上传非常好!这样做的诀窍,我仍将研究区块上传,但现在这是工作!