Не удается установить заголовок HTTP Vary в классическом режиме ASP.NET/IIS7

Для начала немного предыстории. Я написал специальный модуль сжатия HTTP для ASP.NET. На моей машине разработки установлена ​​Windows 7 Ultimate, которая поставляется с IIS7. В моей производственной среде используется IIS6.

Проблема, с которой я столкнулся, заключается в том, что дроид-эксперт по ресурсам (redbot.org) сообщает мне, что мне нужно добавить заголовок к моему ответу, чтобы правильно поддерживать сжатие: «Vary: Accept-Encoding»

На IIS7 в интегрированном режиме работает исправно. Однако в классическом режиме, как в конечном итоге работает мое приложение, я не могу заставить свой код выводить этот заголовок с помощью любого из Response.AppendHeader (), Response.Cache.SetVaryByCustom () или Response.Cache.VaryByHeaders.

Я использую сопоставление обработчика подстановочных знаков, поэтому ASP.NET видит все запросы даже в классическом режиме.


person Taudris    schedule 16.01.2010    source источник


Ответы (1)


Я понимаю, что вы сказали, что уже пробовали это, но вот обычный подход:

this.Response.Cache.SetVaryByCustom("Accept-Encoding");

Вы можете попробовать вызвать этот метод в конце жизненного цикла, например из End_Request в HttpModule.

Если это не сработает, к сожалению, в IIS6 вам нужно будет использовать ISAPI для установки пользовательских заголовков HTTP.

FWIW, встроенная система сжатия должна автоматически установить этот заголовок.

person RickNZ    schedule 16.01.2010