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

Car*_*pon 3 http postman asp.net-core

我正在努力在ASP.NET Core 2.0 Web API中获得响应缓存。

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

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

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseResponseCaching();
    ...
}
Run Code Online (Sandbox Code Playgroud)

这是我的动作方法代码:

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

这是邮递员的要求和回复: 在此处输入图片说明

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

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

Ahm*_*bry 5

邮递员的问题,您必须禁用Send-No-Cash标头(无缓存标头可确保您从服务器获得最新响应)

ASP.NET Core 2.0 Web API响应缓存

在此处输入图片说明