IIS7.5 max-age issue(asp.net mvc output cache)

梦想的初衷 提交于 2019-12-12 08:53:23

问题


We use Windows server 2008 R2 Enterprise And IIS7.5.7600.16385, and i deployed a simple web (asp.net mvc, c#, .net framework 4.5.1) on the server. a controller like below, and *.cshtml only output a datetime:

public class DetailController : Controller
{
    [OutputCache(Duration = 300, VaryByParam = "id")]
    public ActionResult Index(int id)
    {
        return View();
    }
}

when i first request the url http://localhost:80/Detail/Index?id=3 , the response is correct:

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

but, when i request the url again(ctrl+f5), the max-age incorrect (then the response is from the server cache):

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

i don't know why the max-age so large, and how it generated, it will reconvert when the output cache expired (ctrl+f5). In my production env, the incorrect max-age cause a url link click read the content from browser's disk cache.

any one know how and how to fixed it?


回答1:


This is a known issue and a bug is open for .NET 4.6.2 coming with KB151864.

Please see here for additional details: https://github.com/Microsoft/dotnet/issues/330

This is going to be fixed in .NET 4.6.3. I currently don't know if a fix will be made available earlier for 4.6.2.

The only known workaround at present is to downgrade and remove KB151864, when possible.

NOTE: the bug is affecting ONLY the compilation of the "max-age" attribute in the Cache-Control header for the cached responses. The actual caching mechanism and lifetime expiration is working.




回答2:


I just spoke with Microsoft Support team and this is what they responded me:

The suggested workaround is to downgrade the frame work from 4.6.2 to 4.6.1 by uninstalling the update KB31511864.

Go to control panel -> programs -> Programs and Feature -> Installed Updates. And remove KB3151864, that will fix this issue.



来源:https://stackoverflow.com/questions/40218428/iis7-5-max-age-issueasp-net-mvc-output-cache

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!