asp.net-mvc - 为什么 IIS/ASP.Net/MVC3 将 max-age 设置为 7200?

标签 asp.net-mvc asp.net-mvc-3

我有一个 ASP.Net MVC 3 web 应用程序,我用它来传送文件(在这个特定的测试中,pdf 文件)。文件永远不会改变(如果文件改变,就会生成一个新的 URL)。所以我想将 max-age(用于缓存控制)设置为 31536000(1 年)。

代码...

Response.Cache.SetMaxAge(TimeSpan.FromDays(365));

fiddler 回应...
Cache-Control: private, max-age=7200

但是,如果我将 max-age 设置为小于 7200,它就可以正常工作......

代码...
Response.Cache.SetMaxAge(TimeSpan.FromSeconds(7199));

fiddler 回应...
Cache-Control: private, max-age=7199

我也尝试在操作上设置 [OutputCache] 属性,结果相同。

知道 7200 是从哪里来的,以及如何让它变得更多吗?

最佳答案

这种行为表明 max-age 值是在应用程序之前的某个地方设置的。根据SetMaxAge documentation in MSDN :

如果 SetMaxAge 方法被重复调用,在第二次和后续调用中,最大年龄的值只能减少。

如果在管道中早些时候将 max-age 设置为 7200,您所能做的就是将其设置为较低的数字。尝试将其设置为更高的数字是行不通的。

关于asp.net-mvc - 为什么 IIS/ASP.Net/MVC3 将 max-age 设置为 7200?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18862280/

相关文章:

asp.net-mvc - SQL CE 4.0 还是 SQL Express? Orchard 说的对吗?

javascript - 在同一个网页中使用 Silverlight 和 ajax 有意义吗?

asp.net-mvc - 如何在ASP.NET MVC中创建旋转广告 block ?

c# - 如何返回视频(flv)路径以在flowplayer中显示?

asp.net-mvc-3 - 将 WIF 与 asp.net MVC 3 一起使用,我在哪里定义 STS 注销端点?

asp.net-mvc-3 - 如何根据当前页面和/或主页向 Orchard CMS 中的布局包装器添加类

c# - 为什么我不能让 LINQ 在我的 .cshtml 文件中工作?

c# - MVC3 - 发布时模型为空

asp.net-mvc-3 - MVC 3 架构?

c# - 添加自定义响应头;当服务调用抛出异常时, header 丢失