Caching problem while using HttpActionExecutedContext in web API c# MVC

Viewed 128

I am facing worst & awkward issue of my life.

I am using HttpActionExecutedContext for caching my WEB API end points.

My web API is working properly in case of caching, but when I have updated the data & at that time I wanted to reset the caching at that time problem is arises.

Problem 1 :- When I have deleted the bin folder from the server, then also API was sending the data to me. (I have consumed API in ANDROID phone, I have tested in 2 phones after deleting the BIN bolder, In 1st phone API was giving data even after BIN DELETION & in 2nd phone API was giving partial data such as 1 end point was working but another was not). How can this be possible ?

Problem 2 :- Where data is saved when we use HttpActionExecutedContext. Wheather data is saved application pool or something ?

Problem 3 :- How to clear the cache of WEB API.

Here is the code of 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
        };
    }
}

Controller Code

[HttpGet]
[Route("SubCategory")]
[CacheFilter()]
public string SubCategory()
{
   BAL_CAT_ALL obj = new BAL_CAT_ALL();
   var data = obj.GetAllSubCategory();
   return data;
}
1 Answers

While issuing a request to server when the data has been updated , can you please add the below 2 headers in your request:-
'Cache-Control', 'no-cache' 'Pragma', 'no-cache'
Give it a try and let us know if the issue is resolved or ?

Related