如何在 ASP.NET Web API 中使用缓存?

2024-03-16

我正在使用 ASP.NET MVC 4 和 WEB API

我有以下操作,在下面显示的操作中,我的服务方法对数据库进行调用DoMagic()方法并返回一个整数值,然后我在每个页面上使用该值,此操作是使用 ajax 调用来调用的。

以下是我的 WEB API 操作:

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

我的问题:我尝试过使用[OutputCache(Duration = 86400, VaryByParam = "none")]我接受只有第一次进行数据库调用,并且对此操作的下一个后续请求才会返回缓存的值,但这并没有发生。

再次进行数据库调用,数据库调用需要时间我该如何让它工作?


不幸的是,缓存没有内置到 ASP.NET Web API 中。

检查一下这个,让你走上正轨:http://www.strathweb.com/2012/05/output-caching-in-asp-net-web-api/ http://www.strathweb.com/2012/05/output-caching-in-asp-net-web-api/

更新的资源在这里:https://github.com/filipw/AspNetWebApi-OutputCache https://github.com/filipw/AspNetWebApi-OutputCache

编辑:截至 2020-02-03,尽管这个答案已经很旧了,但它仍然有效。

上面的两个 URL 都指向同一个项目,ASP.NET Web API 缓存输出 https://github.com/filipw/Strathweb.CacheOutput by Filip W https://github.com/filipw

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ASP.NET Web API 中使用缓存? 的相关文章

随机推荐