Ошибки IE при загрузке файла через .ashx файл с отключенным кэшированием - PullRequest
0 голосов
/ 01 февраля 2011

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

У меня также установлен Response.Cache.SetCacheability (HttpCacheability.server) вglobal.asax.

Как я заметил из различных источников, Internet Explorer не нравится этот параметр без кэширования и выдает ошибку при попытке загрузить файл (запрошенный сайт недоступен или не может быть найден).

Я подумал, что, возможно, смогу переопределить этот параметр на странице .ashx, поэтому я изменил настройку кеширования ответа на public.Это не решило проблему ... удаление строки из global.asax действительно решило проблему, но, очевидно, затронуло весь сайт.

Есть ли способ настройки кэширования только для моего универсального обработчика?

Приветствия: D

1 Ответ

0 голосов
/ 01 февраля 2011

Можете ли вы просто проверить, сделан ли запрос вашему универсальному обработчику и предоставить соответствующие настройки кэша в зависимости от результата?Как то так:

public void Application_OnPreRequestHandlerExecute(object sender, EventArgs e)
{
    if (!HttpContext.Current.Request.Url.AbsolutePath.EndsWith("MyHandler.asxh", StringComparison.InvariantCultureIgnoreCase))
    {
        HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Server);
    }
}
...