我有一个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请求甚至无法达到该方法。
其他地方的代码可以从文件系统中删除这些文件,但是随后的请求会从缓存中提取响应,因此仍然可以下载文件。
删除文件时如何从缓存中删除这些项目?
答案 0 :(得分:0)
您可以添加代码以每次检查文件是否存在于特定位置,然后从缓存中返回文件。
或
如果用于删除文件的代码存在于同一应用程序中,则可以添加代码以在删除文件后清除缓存。