В ASP.NET 1.0 ошибка приводила к тому, что кэшированные страницы указывали Location = "ServerAndClient" в качестве параметра кэша вывода, чтобы выдавать заголовок Vary: * HTTP в ответе. Это привело к тому, что клиентские браузеры никогда не кэшировали страницу локально.
В ASP.NET 1.1 был добавлен метод System.Web.HttpCachePolicy.SetOmitVaryStar, который можно вызывать для подавления заголовка Vary: *. Этот метод был выбран потому, что изменение испускаемого заголовка HTTP в то время считалось потенциально разрушительным. Однако разработчики были озадачены поведением в ASP.NET, и отчеты об ошибках показывают, что разработчики не знают о существующем поведении SetOmitVaryStar.
В ASP.NET 4 было принято решение исправить проблему с корнем. Заголовок Vary: * HTTP больше не отправляется из ответов, в которых указана следующая директива:
В результате SetOmitVaryStar больше не требуется для подавления заголовка Vary: *.
В приложениях, которые указывают Location = "ServerAndClient" в директиве @ OutputCache на странице, теперь вы увидите поведение, подразумеваемое именем значения атрибута Location, то есть страницы будут кэшироваться в браузере без необходимости Вы вызываете метод SetOmitVaryStar.
Если страницы в вашем приложении должны испускать Vary: *, вызовите метод AppendHeader, как в следующем примере:
* 1 028 * HttpResponse.AppendHeader ( "Vary", "*"); * +1029 *
Кроме того, вы можете изменить значение атрибута Расположение кэширования вывода на «Сервер».