Есть странное поведение в отношении кэширования вывода в приложении ASP.NET 4 на IIS 7.5.Мне удалось повторить проблему просто на других пустых установках, я уверен, что это ошибка, но не знаю, как сообщить об этом в Microsoft.
Сайт в IIS реагирует на более чем 1 домен,.NET-приложение проверяет имя хоста и соответственно создает содержимое.Например, он может напечатать имя URL запроса на пустой странице.Например, www.first-domain.com и www.second-domain.com
В файле web.config есть соответствующие кэширование, urlCompression и httpCompression, отключенные в узле system.webServer.
Страница aspx устанавливает общедоступный заголовок элемента управления кэшем с будущей датой истечения срока действия или значением максимального возраста.
При посещении www.first-domain.com выводится страница, которая успешно пишет'www.first-domain.com'.
Тем не менее, посещение www.second-domain.com приводит к появлению страницы с надписью "www.first-domain.com".
Проверка неисправности-request-traces, System.Web.Caching.OutputCacheModule обнаружил кэшированный вывод (даже если файлы .config отключили функцию), кэш соответствовал, даже если имя хоста URL запроса отличается, и, таким образом, второй запрос будетвыводить результаты первого запроса в другой домен до тех пор, пока не будет задан максимальный возраст / срок действия, до появления правильной страницы для второго домена.
Either установка для элемента управления кэша значения private или удаление модуля «OutputCache» в web.config решает проблему, сохраняя правильные заголовки элемента управления кэшем, отправляемые в браузер, но, очевидно, я не могу воспользоваться преимуществами кэширования ядра, когдаМне это нужно.
Я не могу найти документацию MSDN о том, как настроен модуль OutputCacheModule.
Кто-нибудь еще сталкивался с этой проблемой, как я могу разрешить кэширование ядра и позволить емуна URL учетной записи Имя хоста (без разделения приложения на разные сайты в IIS).
Спасибо.
Обновление:
Добавление SetSlidingExpiration не имеет никакого эффекта,поскольку кернарный кеш все еще кэширует вывод независимо от имени хоста запроса.Единственный сценарий теперь заключается в том, чтобы либо отключить кэширование вывода, либо запустить дубликат экземпляра приложения в каждом домене, который он будет запускать - учитывая снижение производительности сервера, которое может привести к увеличению производительности, получаемой при использовании кэширования вывода, мы решилиотключить кеширование вывода для этого приложения.