Ich habe eine große Zip-Datei (500 MB oder höher), die ich in einen Memorystream lese und zurück als Filestreamresult. Ich bekomme jedoch eine OutOfMemory-Ausnahme für Dateien über 200 MB. In meiner Aktion habe ich den folgenden Code: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);
Ich möchte nicht ReadAllBytes wegen 2GB Grenze und auch wegen der Speicherprobleme beim Lesen der gesamten Datei in den Speicher auf einmal verwenden. – user327999