Генерация PDF, ошибка с IE и HTTPS

Я транслирую PDF в браузер в ASP.NET 2.0. Это работает во всех браузерах по HTTP и во всех браузерахexcept IE через HTTPS. Насколько я знаю, это работало (последние 5 лет или около того) во всех версиях IE, но наши клиенты только недавно начали сообщать о проблемах. Я подозреваюDo not save encrypted pages to disk Опция безопасности раньше была отключена по умолчанию и в какой-то момент стала включена по умолчанию (Свойства обозревателя -> Дополнительно -> Безопасность). Отключение этой опции помогает в качестве обходного пути, но не является жизнеспособным в качестве долгосрочного решения.

Я получаю сообщение об ошибке:

Internet Explorer cannot download OutputReport.aspx from www.sitename.com.

Internet Explorer was not able to open this Internet site. The requested site is either unavailable or cannot be found. Please try again later.

Инструмент, используемый для создания PDF, ActiveReports изDataDynamics, После того, как PDF создан, вот код для его отправки:

Response.ClearContent()
Response.ClearHeaders()
Response.AddHeader("cache-control", "max-age=1")
Response.ContentType = "application/pdf"
Response.AddHeader("content-disposition", "attachment; filename=statement.pdf")
Response.AddHeader("content-length", mem_stream.Length.ToString)
Response.BinaryWrite(mem_stream.ToArray())
Response.Flush()
Response.End()  

Примечание. Если я не указываю явно управление кэшем, тогда .NET отправляет no-cache от моего имени, поэтому я попытался установить управление кэшированием: private или public или maxage = #, но ни один из них, похоже, не работает.

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

HTTP/1.1 200 OK
Cache-Control: max-age=1
Date: Wed, 29 Jul 2009 17:57:58 GMT
Content-Type: application/pdf
Server: Microsoft-IIS/6.0
MicrosoftOfficeWebServer: 5.0_Pub
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
content-disposition: attachment; filename=statement.pdf
Content-Encoding: gzip
Vary: Accept-Encoding
Transfer-Encoding: chunked

Как только я выключаю Fiddler и пытаюсь снова, он снова перестает работать. Еще одна вещь, которую я заметил, это то, что когда Fiddler работает, я получаюThere is a problem with this website's security certificate предупреждающее сообщение, и я должен нажатьContinue to this website (not recommended) пройти через. Когда Fiddler выключен, я не сталкиваюсь с этим предупреждением безопасности, и оно сразу перестает работать.

Мне любопытно, что происходит между Fiddler и браузером, так что он работает, когда Fiddler работает, но ломается, когда он не работает, но, что более важно, у кого-нибудь есть идеи, как я могу изменить свой код, так что потоковая передача PDF-файлов в IE будет работать без вносить изменения в клиентскую машину?

Update: Проблемы с Fiddler решены, большое спасибо EricLaw, так что теперь он ведет себя согласованно (не работает, работает или нет Fiddler).

Основываясь на поиске в Google, по всей видимости, существует множество сообщений об этой же проблеме по всей сети, каждая из которых имеет свою собственную конкретную комбинацию заголовков ответов, которые, похоже, решают проблему в отдельных случаях. Я испробовал многие из этих предложений, включая добавление ETag, дату LastModified, удаление заголовка Vary (используя Fiddler) и десятки комбинаций заголовков Cache-Control и / или Pragma. Я пробовал & quot; Content-Transfer-Encoding: двоичное & quot; а также «приложение / принудительная загрузка»; для ContentType. Пока ничего не помогло. Естьмало Microsoft KB статьивсе из которых указывают на то, чтоCache-Control: no-cache виновник Есть еще идеи?

Update: Кстати, для полноты, такая же проблема возникает и с выходами Excel и Word.

Update: Никакого прогресса достигнуто не было. Я послал по электронной почте файл .SAZ из Fiddler в EricLaw, и он смог воспроизвести проблему при отладке IE, но пока нет решений. Баунти собирается истечь ...

Ответы на вопрос(12)

Ваш ответ на вопрос