文件下载时出现System.OutOfMemoryException

时间:2010-04-08 12:26:31

标签: asp.net memory-management

我有一个带有以下代码的ashx处理程序。我们的想法是隐藏文件的路径并提示下载

       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);

这适用于某些文件,但在其他文件中我得到

抛出了'System.OutOfMemoryException'类型的异常。

2 个答案:

答案 0 :(得分:6)

非常奇怪,7Mb非常小。也许您的应用程序池有一个下限?

如果您只需要文件下载处理程序,请使用 HttpResponse.TransmitFile(),它不会将文件缓冲在内存中。

http://msdn.microsoft.com/en-us/library/12s31dhy%28VS.80%29.aspx

答案 1 :(得分:0)

您已填满系统内存。对于较大的文件,传输的数据将缓冲在内存中。我建议您创建自己的自定义缓存方法。