У меня есть приложение, которое кэширует страницы с директивой кэша вывода asp.net.
Когда я вставляю обновление или удаляю что-то с панели управления, я хочу сбросить кэш вывода.
Локально мой алгоритм прекрасно работает.
Когда я запускаю его на общем хосте, кеш не очищается.
мой алгоритм очень прост:
В global.asax я создаю список со всеми страницами, которые я использую в кеше вывода.
OutputCacheHelper.Directories.Add(OutputCacheHelper.AllPagesKey, new List<string>() {
"/Default.aspx",
"/pages/DisplayContactForm.aspx",
"/pages/PhotosGallery.aspx",
"/pages/Schedule.aspx",
"/pages/Shows.aspx",
"/pages/cms/DisplayCategory.aspx",
"/pages/cms/DisplayCategoryAlternative.aspx",
"/pages/cms/DisplayFrontPage.aspx",
"/pages/cms/ViewAirstaff.aspx",
"/pages/cms/ViewArticle.aspx",
"/pages/cms/ViewShow.aspx"
});
Затем, когда я вставляю / обновляю / удаляю данные из базы данных, я использую приведенный выше алгоритм:
foreach (string directory in Directories[AllPagesKey])
{
HttpResponse.RemoveOutputCacheItem(directory);
}
Я не знаю, почему это не работает на виртуальном хостинге.
Пожалуйста помоги.
Спасибо и извините за мой английский.
EDIT
Извините за задержку.
Я был в командировке.
Я понял это ...
Не так, как я хочу, но я могу применить только кэш вывода.
(потому что Azure недоступен)
Я добавляю зависимость от файла, а затем, когда я хочу очистить кеш, я просто изменяю содержимое.
Это нормально?