私はMemoryStreamに読み込んでFileStreamResultとして返す大きなzipファイル(500MB以上)を持っています。しかし、200MB以上のファイルに対してOutOfMemory例外が発生しています。ASP MVC FileStreamResult OutOfMemoryException
MemoryStream outputStream = new MemoryStream();
using (var fs = new FileStream(filepath, FileMode.Open, FileAccess.Read))
{
//Response.BufferOutput = false; // to prevent buffering
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) > 0)
{
outputStream.Write(buffer, 0, bytesRead);
}
}
outputStream.Seek(0, SeekOrigin.Begin);
return new FileStreamResult(outputStream, content_type);
私はReadAllBytesを使用したくないのは、2GBの制限と、ファイル全体を一度にメモリに読み込む際のメモリの問題のためです。 – user327999