Thursday, June 15, 2017

.NET 4.6.2 OutputCache max-age is incorrect

After upgrading to .NET 4.6.2 we started noticing problems with our ASP.NET MVC applications. We intesively use caching to limit the load on our web servers. This is easy to implement thanks to the OutputCache attribute in MVC.

The problem we noticed after upgrading was that the max-age in the response headers was no longer correct after hitting the cache. An example:

  • We had the following OutputCache attribute on top of our MVC controller:
    [OutputCache(Duration = 86400 )]
  • When executing the first request, we see the following response heade
    Cache-Control: public, max-age=86400
  • On all subsequent requests, we see the following
    Cache-Control: public, max-age=63623538558

More information: https://github.com/Microsoft/dotnet/issues/330

Remark: This problem is fixed in .NET 4.7 and a specific quality update.

No comments: