Добавление заголовков кэша через Web.config только для определенных мест - PullRequest
3 голосов
/ 09 февраля 2012

У нас есть приложение, которое было разработано третьей стороной, и я не хочу возвращаться к ним, чтобы заставить их добавлять в элемент управления кешем определенные страницы.

Все страницы, которые нужныкэширование отключено в одном каталоге.

Проблема заключается в том, что IE, похоже, не следует Cache-control: nocache должным образом, поэтому нам необходимо добавить в Pragma: nocache и возраст кэша.

Есть ли способ сделать это с помощью конфигов в каталоге?будет ли он каскадно проходить через все дочерние каталоги?Можно ли это сделать через основной файл web.config?

Чтобы было ясно, я не ищу способ сделать это с помощью кода, он должен быть через конфигурацию файлов IIS или web.config..

Мы используем ASP.NET 2.0 и 4.0 в IIS 6.0.

Ответы [ 2 ]

3 голосов
/ 09 февраля 2012

Это можно сделать в IIS с помощью пользовательского интерфейса, на самом деле это довольно просто или, по крайней мере, так было в моем случае использования.

Все, что вам нужно, это просто открыть диспетчер IIS, перейти на сайт и затемдиректории, в которую вы хотите добавить заголовки, щелкните правой кнопкой мыши -> properties.

Перейдите на вкладку «Заголовки» и добавьте необходимые заголовки.

Это рекурсивно идет вниз по дочерним каталогам, идобавляет заголовки перед любым добавленным кодом.

В IIS 7.0 / 7.5 вы можете использовать раздел StaticContent файла web.config в каждом из каталогов.

1 голос
/ 09 февраля 2012

Вы можете сделать это на global.asax

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    HttpApplication app = (HttpApplication)sender;
    string cTheFile = HttpContext.Current.Request.Path;

    if (cTheFile.Contains("/ExtraDir/"))
    {
        // add your header here
        app.Response.AppendHeader("Pragma", "no-cache");    
    }

    //... rest code of...
}
...