我有一个 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/