我们使用Windows server 2008 R2 Enterprise和IIS7.5.7600.16385,并在服务器上部署了一个简单的Web(asp.net mvc,c#,.net framework 4.5.1).像下面这样的控制器,*.cshtml只输出一个日期时间:
public class DetailController : Controller
{
[OutputCache(Duration = 300, VaryByParam = "id")]
public ActionResult Index(int id)
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
当我第一次请求URL http:// localhost:80/Detail/Index?id = 3时,响应是正确的:
Cache-Control:public, max-age=300
Date:Mon, 24 Oct 2016 12:11:59 GMT
Expires:Mon, 24 Oct 2016 12:16:51 GMT
Last-Modified:Mon, 24 Oct 2016 12:11:51 GMT
Run Code Online (Sandbox Code Playgroud)
但是,当我再次请求url(ctrl + f5)时,max-age不正确(然后响应来自服务器缓存):
Cache-Control:public, max-age=63612908450
Date:Mon, 24 Oct 2016 12:16:34 GMT
Expires:Mon, 24 Oct 2016 12:20:50 GMT
Last-Modified:Mon, 24 Oct 2016 12:15:50 GMT
Run Code Online (Sandbox Code Playgroud)
我不知道为什么max-age这么大,以及它是如何生成的,它会在输出缓存过期时重新转换(ctrl + …