У меня есть веб-приложение ASP.NET, и весь сайт просматривается через HTTPS с использованием действительного коммерческого сертификата. В одной части приложения можно загрузить электронную таблицу Excel. Загрузка начинается с POST (PostBack from LinkButton)
Ответ очищен (Response.Clear(), Response.BinaryWrite(байты [])) blah и т.д., как мы сделали в тысячах проектов, которые все работают нормально, исправлены заголовки контента и все такое. единственное различие здесь - SSL, но я не вижу, как это связано. Да, есть множество ссылок на заголовки кеша, которые мешают IE помещать файл во временные интернет файлы, чтобы затем можно было запустить соответствующую офисную программу, чтобы открыть ее и т.д. И т.д. Ядда... Я читал все это. Я проверил заголовки кеша с помощью Fiddler и LiveHeaders (FF Extension) и могу подтвердить "Cache: private"; это то, что отправляется в ответе как с производственного сайта, так и с моей локальной настройки.
Если я настрою SSL-сертификат на свой локальный экземпляр IIS и запустил проект, я могу открыть или сохранить ту же самую таблицу без проблем с помощью IE (я знаю, что нет ничего плохого в реальном файле производства, поскольку FireFox загружает его без пота, какой сюрприз!) Однако с веб-сервера производства IE6 говорит, что удаленный хост отключился, и IE7 просто сидит там, загружая до конца времени (действительно полезно!) Гах, я вырываю мне волосы.
SSL, вложения и IE - это ужасный микс. Это известная ошибка (некоторые называют ее "функцией" ) с IE и некоторыми HTTP-заголовками через SSL. В принципе, если браузеру сообщается не хранить файл, что происходит, так это то, что он в основном удален до того, как он будет обслуживать пользователя. Вы действительно хотите разрешить им кэшировать его.
Вот статья поддержки Microsoft об этом. И еще.
Вы пробовали Content Disposition Заголовок MIME?