我面临人生中最糟糕和尴尬的问题。
我正在使用 HttpActionExecutedContext 来缓存我的 WEB API 端点。
我的 WEB API 在缓存方面运行良好,但当我更新数据并想要重置缓存时,问题就出现了。
问题1: 当我从服务器删除 bin 文件夹时,API 仍会向我发送数据。 (我在 Android 手机上使用 API,在删除 BIN 文件夹后测试了 2 部手机。在第一部手机中,即使在 BIN 删除后,API 仍然提供数据;在第二部手机中,API 提供部分数据,例如一个端点正在工作,但另一个端点没有工作)。 这是如何可能的?
问题2: 使用 HttpActionExecutedContext 时数据保存在何处?数据保存在应用程序池还是其他地方?
问题3: 如何清除 WEB API 的缓存。
以下是 WEB API 的代码。
public class CacheFilter : ActionFilterAttribute
{
public int TimeDuration { get; set; }
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
actionExecutedContext.Response.Headers.CacheControl = new System.Net.Http.Headers.CacheControlHeaderValue
{
MaxAge = TimeSpan.FromMinutes(1440),
MustRevalidate = true,
Public = true
};
}
}
控制器代码
[HttpGet]
[Route("SubCategory")]
[CacheFilter()]
public string SubCategory()
{
BAL_CAT_ALL obj = new BAL_CAT_ALL();
var data = obj.GetAllSubCategory();
return data;
}