Reputation: 5370
I have an ashx handler with the following code. The idea is to hide the path of the file and prompt a download
context.Response.Clear();
context.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
context.Response.AddHeader("Content-Length", file.Length.ToString());
context.Response.ContentType = "application/octet-stream";
context.Response.WriteFile(file.FullName);
This works fine for some files however on others i get
Exception of type 'System.OutOfMemoryException' was thrown.
Upvotes: 3
Views: 3872
Reputation: 3107
Very weird, 7Mb is really small. Maybe there's a low limit on your Application Pool ?
If you only need a file download handler, use HttpResponse.TransmitFile() which don't buffer the file in memory.
http://msdn.microsoft.com/en-us/library/12s31dhy%28VS.80%29.aspx
Upvotes: 6
Reputation: 258
You have filled system memory. With larger files, transferred data is buffered in memory. I would suggest creating your own custom caching method.
Upvotes: -1