public CachingHandler(HttpConfiguration configuration, IEntityTagStore entityTagStore, params string[] varyByHeaders) { _configuration = configuration; AddLastModifiedHeader = true; AddVaryHeader = true; _varyByHeaders = varyByHeaders; _entityTagStore = entityTagStore; ETagValueGenerator = new DefaultETagGenerator().Generate; UriTrimmer = (uri) => uri.PathAndQuery; _routePatternProvider = new ConventionalRoutePatternProvider(configuration); // infinite - Never refresh CacheRefreshPolicyProvider = (message, httpConfiguration) => TimeSpan.MaxValue; // items by default get cached but must be revalidated CacheControlHeaderProvider = (request, cfg) => new CacheControlHeaderValue() { Private = true, MustRevalidate = true, NoTransform = true, MaxAge = TimeSpan.Zero }; }