Asp.net MVC Core 2.1响应缓存不起作用

时间:2019-01-02 22:49:33

标签: c# caching asp.net-core asp.net-core-mvc responsecache

我使用Visual Studio 2017创建了一个asp.net核心mvc 2.1应用程序,并添加了响应缓存。

在Index.cshtml中添加

@DateTime.Now.ToString()

当我在浏览器中运行应用程序时,如果重新加载页面,则输出时间将随每次刷新而变化,而不是如代码中所指定的那样缓存10000秒。

Startup.cs:

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

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

索引操作:

[ResponseCache(Duration = 10000, Location = ResponseCacheLocation.Any, VaryByQueryKeys = new string[] {"id"})]
public IActionResult Index()
{
    // fetch data from database
}

当我检查响应头时:

  

缓存控制:public,max-age = 10000

但是,刷新时,每次输出都会变化。

任何建议都值得赞赏。

编辑:如果使用其他浏览器打开链接,则可以获取缓存的副本。但是,如果我按F5刷新,则会得到更新的时间。

第二个(刷新F5)请求标头:

  

GET / HTTP / 1.1

     

主持人:example.com

     

连接:保持活动状态

     

缓存控制:max-age = 0

     

不安全升级请求:1

     

用户代理:Mozilla / 5.0(Windows NT 10.0; Win64; x64)   AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 71.0.3578.98   Safari / 537.36

     

接受:   text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp,image / apng, / ; q = 0.8

     

引荐来源:https://example.com/

     

接受编码:gzip,deflate,br

     

接受语言:en-US,en; q = 0.9,zh-CN; q = 0.8,zh; q = 0.7,ja; q = 0.6

     

Cookie:blablabla

0 个答案:

没有答案