0

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

在 Index.cshtml 中,添加

@DateTime.Now.ToString()

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

启动.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
}

当我检查响应头时:

缓存控制:公共,最大年龄=10000

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

任何建议表示赞赏。

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

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

获取/HTTP/1.1

主机:example.com

连接:保持活动

缓存控制:max-age=0

升级不安全请求:1

用户代理:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like 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

饼干:blablabla

4

0 回答 0