上傳84MB文件(請參見下面的錯誤)時出現此錯誤,但是當我上載〜60MB文件時,它正常工作。這隻發生在我們的32位2008 VM VM/4GB內存上。在我的R2 64bit VM w/8GB內存上,即使130MB文件也可以正常工作。System.OutOfMemoryException:上傳文件時出現異常
System.OutOfMemoryException:異常的類型 'System.OutOfMemoryException'被拋出。在 Ç System.IO.BinaryReader.ReadBytes(的Int32計數)在 CustWeb.Controllers.DownloadsController.Create(下載DL, HttpPostedFileBase文件):\ ... \ CustWeb \ \控制器DownloadsController.cs:行72
但是,我在任務管理器中監視了內存,在整個上傳過程中,它始終沒有超過74%。
這是4.5 .NET框架中的MVC 4應用程序。
我有我的web.config中處理上傳文件的最大設置。
<httpRuntime requestValidationMode="4.5" targetFramework="4.5" maxRequestLength="2147483647" executionTimeout="84000" />
...
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147482624" />
</requestFiltering>
</security>
UPDATE的要求添加代碼:
public ActionResult Create(Download dl, HttpPostedFileBase file)
{
try
{
using (var binaryReader = new BinaryReader(file.InputStream))
{
dl.FileBytes = binaryReader.ReadBytes(file.ContentLength);
}
dl.FileContentType = file.ContentType;
dl.FileName = file.FileName;
dl.Insert();
Success("<strong>" + dl.Label + "</strong> created and uploaded successfully.");
return RedirectToAction("Index");
}
catch (Exception ex)
{
SelectList list = new SelectList(new DownloadType().GetDownloadTypes(), "ID", "Name");
ViewBag.DownloadTypeList = list;
Error(ex.ToString());
return View(dl);
}
}
向我們顯示您的代碼。 – SLaks
這裏使用'BinaryReader'是錯誤的。 – leppie
@SLaks - 按照您的要求添加了我的代碼。 – RichC