ASP.NET核心响应缓存无法按预期工作

时间:2017-12-23 22:09:39

标签: http asp.net-core postman

我很难在ASP.NET Core 2.0 Web API中获得响应缓存。

我在中间件中添加了响应缓存:

public void ConfigureServices(IServiceCollection services)
{
    services.AddResponseCaching();
    ...
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseResponseCaching();
    ...
}

这是我的动作方法代码:

[ResponseCache(Duration = 30)]
[HttpGet()]
public IActionResult GetLookups()
{
    Lookup lookups = dataRepository.GetContactLookups();
}

这是邮递员的请求和回复: enter image description here

因此,我在响应中获得了正确的 Cache-Control http标头,但如果我再次从邮递员发送响应,它仍会在我的操作方法中调用我的代码。我希望它不会调用我的代码并使用缓存的响应。

我是否误解了响应缓存的工作方式?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

Postman的问题是你必须禁用Send-No-Cash标头(无缓存标头确保你从服务器得到最新鲜的响应)

ASP.NET Core 2.0 Web API Response Caching

enter image description here