Asp.net 覆盖客户端缓存的输出缓存持续时间

Asp.net 覆盖客户端缓存的输出缓存持续时间,asp.net,caching,wcf-rest,Asp.net,Caching,Wcf Rest,我有一个基于REST的WCF服务,它返回JSON数据作为响应。为提高性能,启用了输出缓存,位置为ANY,持续时间为1小时。 我希望允许客户端将响应缓存一个月,同时将数据缓存在服务器上仅1小时,为此,我在代码中添加了以下几行 HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(30)); HttpContext.Current.Response.Cache.SetCacheability(HttpCacheab

我有一个基于REST的WCF服务,它返回JSON数据作为响应。为提高性能,启用了输出缓存,位置为ANY,持续时间为1小时。 我希望允许客户端将响应缓存一个月,同时将数据缓存在服务器上仅1小时,为此,我在代码中添加了以下几行

HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(30));
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Public);

但此值被输出缓存配置文件值覆盖。如何覆盖输出缓存配置文件设置的值我没有测试这个,但它可能会帮助您:如所写:

HttpCachePolicy的头是在缓存模块运行后由asp.net添加的,因此不是缓存响应的一部分。如果希望缓存头,只需在代码中使用HttpResponse.SetHeader/AddHeader等


我没有对此进行测试,但它可能会帮助您:正如所写:

HttpCachePolicy的头是在缓存模块运行后由asp.net添加的,因此不是缓存响应的一部分。如果希望缓存头,只需在代码中使用HttpResponse.SetHeader/AddHeader等