如何从.NET缓存中删除单个HTTP响应?

时间:2019-07-04 11:26:35

标签: c# asp.net-mvc caching

我有一个ASP.NET MVC控制器,该控制器具有一种返回文件并用[HttpGet]装饰的方法。

第一次调用它会获取文件,并且在返回之前具有代码:

ControllerContext.HttpContext.Response.Cache.SetExpires(DateTime.Now.AddDays(7));
ControllerContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.Public);
ControllerContext.HttpContext.Response.Cache.SetValidUntilExpires(false);

此[HttpGet]方法的后续请求从缓存中返回文件,因此HTTP请求甚至无法达到该方法。

其他地方的代码可以从文件系统中删除这些文件,但是随后的请求会从缓存中提取响应,因此仍然可以下载文件。

删除文件时如何从缓存中删除这些项目?

1 个答案:

答案 0 :(得分:0)

您可以添加代码以每次检查文件是否存在于特定位置,然后从缓存中返回文件。

如果用于删除文件的代码存在于同一应用程序中,则可以添加代码以在删除文件后清除缓存。