Невозможно загрузить файлы с зашифрованной SSL-страницы в IE8 + - невозможно изменить заголовки в ASP.NET - PullRequest
1 голос
/ 03 февраля 2012

У меня ужасное время, когда я заставляю веб-страницу работать, и мне действительно может помочь.Страница обслуживается через IIS 7 с включенным SSL.На нем пользователь может загрузить документ .rtf или .zip из нескольких файлов .rtf.Это прекрасно работает в FF и Chrome, но как только IE будет введен, конечный пользователь получит всплывающее окно со следующей ошибкой:

Невозможно открыть этот интернет-сайт.Запрашиваемый сайт либо недоступен, либо не найден.Повторите попытку позже.

Используя Fiddler, я вижу, что заголовок имеет Cache-Control, установленный в No-cache, и Pragma также установлен в no-cache.Основываясь на нескольких форумах и блогах, это приводит к тому, что IE запрещает загрузку файлов со страницы.

Я попытался изменить заголовки в коде ASP.NET, например:

Response.AppendHeader("Pragma", "public");
Response.AppendHeader("Cache-Control", "must-revalidate, 
    post-check=0, pre-check=0");
Response.AppendHeader("Cache-Control", "public");

и это:

Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetMaxAge(TimeSpan.FromMinutes(1));
Response.Cache.SetValidUntilExpires(true);

ни один из которых не работает.Заголовки по-прежнему установлены без кэширования.

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

Эта тема близка к ответу на мой вопрос, но не указывает, как они смогли переписать заголовки.

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

Ответы [ 2 ]

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

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

IE8 и кэширование на стороне клиента

0 голосов
/ 05 августа 2013

Уже ответили, но я решил добавить еще один ответ, который мне помог.

Поскольку вы используете IIS 7, вы можете использовать

Response.Headers.Remove("Pragma")

чтобы удалить заголовок Pragma. Метод AppendHeader не переопределяет любые ранее существующие заголовки, включая другие заголовки Pragma, поэтому «Pragma: no-cache» все еще присутствовал. Теперь с IIS 7 вы можете удалить его.

Если у вас нет IIS 7 или ваш локальный компьютер настроен на работу с IIS 6, даже если у вас есть IIS 7, доступный, как у меня, вы получите исключение «Эта операция требует интегрированного режима конвейера IIS». Просто убедитесь, что вы используете IIS 7, и все будет хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...