我有一个带有以下代码的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'类型的异常。
答案 0 :(得分:6)
非常奇怪,7Mb非常小。也许您的应用程序池有一个下限?
如果您只需要文件下载处理程序,请使用 HttpResponse.TransmitFile(),它不会将文件缓冲在内存中。
http://msdn.microsoft.com/en-us/library/12s31dhy%28VS.80%29.aspx
答案 1 :(得分:0)
您已填满系统内存。对于较大的文件,传输的数据将缓冲在内存中。我建议您创建自己的自定义缓存方法。