ASP.NET MVC和FileResult缓存

时间:2017-09-12 13:19:12

标签: c# asp.net asp.net-mvc caching

我有一个如此简单的代码:

// cache is disabled 
[OutputCache(NoStore = true, Duration = 0)]
public async Task<ActionResult> GetVideo(string path)
{            
    byte[] data = await _fileService.GetFileAsync(path);                        
    if (data == null)
        return HttpNotFound();

    return File(data, "video/mp4");
}

此代码非常简单:它将文件的内容检索为字节数组并将其发送到客户端。我有一个包含一些video标签的网页。所有这些标签都使用GetVideo作为来源。每个视频大约400-500 Mb。页面准备就绪后,任务管理器中的w3wp.exe需要3-4 Gb RAM并且不会释放内存。正如我之前写的,我使用OutputCacheAttribute禁用resutl缓存。 问题不会隐藏在方法GetFileAsync中,因为当我替换行

byte[] data = await _fileService.GetFileAsync(path);      

带行

byte[] data = System.IO.File.ReadAllBytes(Server.MapPath(path));

这个问题依然存在。也许有人知道如何在向客户端发送字节后释放内存?

0 个答案:

没有答案