Я использую маршрутизацию из System.Web.Routing без MVC в стандартном приложении проекта веб-приложения ASP.Net. В основном это делается для получения более точных URL на разрабатываемом портале (вместо ~ / default.aspx? Contentid = 123 у нас есть ~ / {contentsubject}. Портал не авторизован, и вся информация находится в URL, поэтому в кэшировании Сценарий мы можем кэшировать полные страницы.
Когда я попытался включить кэширование вывода, я заметил, что кэширование не было выполнено. Кажется, что директива страницы outputcache полностью игнорируется. Это правда или я что-то упустил? Можно ли это исправить?
Я сделал небольшое тестовое приложение (я загрузил его на http://www.4shared.com/file/196605919/31903b07/OutputCacheTest.html), который просто содержит страницу Webform1.aspx, которая использует главную страницу и пользовательский элемент управления. Все три выводят текущую дату и время.
Когда я запрашиваю http // localhost / OutputcacheTest / Webform1.aspx, 10-секундное кэширование работает должным образом, то есть показанное время обновляется только каждые 10 секунд.
Приложение также определяет подстановочный маршрут, который перехватывает все запросы и возвращает тот же Webform1.aspx, что и обработчик. Поэтому при запросе http // localhost / OutputcacheTest / myroute выполняется та же страница, но теперь кэширование не работает, т. Е. Текущее время отображается для каждого запроса.
Примечание: при использовании встроенного веб-сервера разработки оба сценария работают, похоже, что только IIS имеет эту проблему.
У кого-нибудь есть решение или обходной путь для включения кэширования вывода в этом сценарии?