Использование любого из OutputCacheProfiles приведенных нижеКак подавить заголовок Vary: * при использовании OutputCacheProfiles
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<clear/>
<add
name="CachingProfileParamEmpty"
duration="87"
varyByParam=""
location="Any"
/>
<add
name="CachingProfileParamNone"
duration="87"
varyByParam="None"
location="Any"
/>
<add
name="CachingProfileParamStar"
duration="87"
varyByParam="*"
location="Any"
/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
заголовка Vary: * всегда отправляется
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Mon, 05 Mar 2012 20:11:52 GMT
X-AspNetMvc-Version: 3.0
Cache-Control: public, max-age=87
Expires: Mon, 05 Mar 2012 20:13:13 GMT
Last-Modified: Mon, 05 Mar 2012 20:11:46 GMT
Vary: *
Content-Type: text/html; charset=utf-8
Content-Length: 5368
Connection: Close
, который в свою очередь, вызывает браузер для отправки запросить сервер и не кэшировать локально. Даже с использованием
this.Response.Cache.SetOmitVaryStar(false);
не помогает. Единственный способ, которым я могу заставить заголовок не отправлять, - использовать прямой атрибут
[OutputCache(Duration = 60, VaryByParam = "", Location = OutputCacheLocation.Any)]
public ActionResult Index()
Что я делаю неправильно? Я бы предпочел использовать CacheProfiles, поскольку они могут быть изменены в web.config.
Заголовки, размещенные здесь, принадлежат Cassini (Server: ASP.NET Development Server/10.0.0.0), но я видел идентичные результаты в IIS 7 в Windows 2008.