Я использую asp.net 4.0 (веб-сайт форм), и я внедрил собственный поставщик выходных данных на основе дисков, который отлично работает при кешировании страниц на моем сайте , Проблема, которую я получаю, заключается в том, что я не могу найти способ удалить определенную страницу из кеша, и я подозреваю, что это проблема с Url Rewriting.Удаление определенной страницы из поставщика выходных данных пользовательского кэша в asp.net
Например, если у меня есть страница под названием test.aspx, я могу легко удалить его из кэша с помощью:
HttpResponse.RemoveOutputCacheItem("/test.aspx");
Это не работает на странице, которая выводится через кэшированных ид, хотя, например, http://www.example.com/page/1 переписывается как http://www.example.com/myfolder/Page.aspx?id=1
Я вижу кэшированную версию страницы, но я не могу удалить ее из кеша диска, так как мне нужен абсолютный виртуальный путь для работы RemoveOutputCacheItem. Я пробовал следующее:
HttpResponse.RemoveOutputCacheItem("/myfolder/Page.aspx?id=1");
HttpResponse.RemoveOutputCacheItem("/myfolder/page/1");
И много других вариантов, но ничего не работает.
Кэшированный ключ для URL-адреса не совпадает с сохраненным ключом a2_myfolder_page.aspxHQNidV1FCDE при попытке использовать RemoveOutputCacheItem.
Есть ли решение для этого? Или другой способ, чтобы вырезать определенные кешированные страницы? Благодаря
Я уже использую VaryByParam в директиве Output страницы на Page.aspx и все версии кэшируются правильно, например, id = 1, id = 2 и т. д. RemoveOutputCacheItem просто не работает для переписанных URL-адресов. – gices