Загрузка в формате PDF не показывает сообщение "Не удалось загрузить" только в IE11

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

Замечания:

  • Я тестирую локально
  • Он работает в Firefox и Chrome, но не в IE11
  • IE меняет имя файла на имя страницы (например, он пытается сохранить default_aspx вместо myfile.pdf) File name changedenter image description here

Это мой код:

Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "Application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.BinaryWrite(buffer);
Response.End();

Это заголовки, которые я получил от IE:

Значение ключа

Ответ HTTP/1.1 200 OK

Cache-Control private

Content-Type Application/PDF

Сервер Microsoft-IIS/7.5

Вложение Content-Disposition; имя файла = myfile.pdf

X-AspNet-версия 4.0.30319

X-Powered-By ASP.NET

Дата Пт, 10 апр 2015 22:44:40 GMT

Content-Length 691892

UPDATE

Кажется, что это проблема с конфигурацией сервера, потому что тот же код будет работать нормально на моем рабочем сервере, но не на моем сервере разработки. Таким образом, мой клиент не будет жаловаться на это, так или иначе, я хочу исправить его в своей среде разработки, как только у меня будет время, я буду исследовать немного больше, если найду решение, которое я опубликую здесь.

Ответы

Ответ 1

У нас была аналогичная проблема в ie8, проблема в том, что файл выполняется в кеше и не найден. Чтобы проверить это, установите Cache-Control: no-cache в вашем объекте ответа.

Ответ 2

Это не точный ответ, но надеюсь, что он может открыть некоторые способы найти точный.

В то время как googling я обнаружил, что это может быть связано с выпуском обновлений безопасности от Microsoft для IE.

Microsoft выпустила систему безопасности обновление для IE11 8 июля 14, которое имеет ошибку, влияющую на загрузку.

И вот Microsoft Connect Link, которые упоминаются в разделе active.

Пожалуйста, поделитесь точным решением, как только найдете его.

Ура!!

Ответ 3

Я делаю что-то подобное в своем приложении. Попробуйте удалить заголовок content-disposition и измените Application/pdf на Application/pdf. Вам также, вероятно, не нужно Response.End(), хотя я сомневаюсь, что это вызывает проблему.

Ответ 4

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

Response.AddHeader("Content-Length", buffer.Length.ToString())