¿Cómo usar el almacenamiento en caché en ASP.NET Web API?

Estoy usando ASP.NET MVC 4 con API WEB

Tengo la siguiente acción, en la acción que se muestra a continuación, mi método de servicio realiza una llamada db aDoMagic() Método y devuelve un valor entero que luego estoy usando en cada página, esta acción se llama usando una llamada ajax.

A continuación se muestra mi acción de la API WEB:

[OutputCache(Duration = 86400, VaryByParam = "none")]
[ActionName("GetMyMagicNumber")]
public int GetMyMagicNumber()
{
    if (WebSecurity.IsAuthenticated)
    {
        var revenue = _magicService.DoMagic();
        return revenue;
    }
    return 0;
}

Mi pregunta: He intentado usar[OutputCache(Duration = 86400, VaryByParam = "none")] y exceptué que solo la primera vez que se realice la llamada a la base de datos y la siguiente solicitud posterior a esta acción me devolverá el valor almacenado en caché, pero esto no está sucediendo.

Se vuelve a realizar una llamada a db, la llamada a db lleva tiempo, ¿cómo puedo hacer que esto funcione?

Respuestas a la pregunta(4)

Su respuesta a la pregunta