Что мне нужно сделать, чтобы Excel получил доступ к веб-запросу через HTTPS?

StackOverflow https://stackoverflow.com/questions/2206943

  •  18-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь реализовать страницу, которая позволит пользователям Excel использовать данные, которые она предоставляет, с помощью функции веб-запроса, предоставляемой Excel.

Все работает очень хорошо, пока я использую HTTP (работает даже аутентификация пользователя BASIC).

Как только я переключусь на HTTPS, Excel больше не будет загружать данные (это даже полностью официальный сертификат SSL, так что с самоподписанным сертификатом проблем не будет).

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

Теперь часть, которая заставляет меня задуматься, заключается в следующем:

Эта проблема возникает, когда Excel не может инициировать соединение из-за настроек защищенного веб-сервера.

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

Следует ли принимать слова «из-за настроек защищенного веб-сервера» за чистую монету или это просто способ Microsoft сказать: «Это не будет работать, если вы не купите у нас подходящее программное обеспечение»?

Это было полезно?

Решение

Кажется, я нашел проблему:

MS Excel, похоже, не может использовать данные на странице, если в заголовках HTTP страницы указано, что они не должны кэшироваться. и он передается через HTTPS (те же заголовки, отправленные через HTTP, похоже, игнорируются).

Итак, по нет отправив эти заголовки, Excel внезапно смог получить доступ к данным:

Pragma: no-cache
Cache-Control: no-cache

Другие советы

Ответ Иоахима решил для меня проблему.Серверная веб-инфраструктура (PHP5/Expression Engine 1.6.7) отправляла Pragma:без кэша при каждом запросе (хотя на моей странице результатов веб-запроса установлен Pragma:public, я думаю, фреймворк переопределил это).Как только я его удалил, все начало работать.

Поведение IE и Office для Pragma:no-cache аналогичен описанному в Статья базы знаний МС:Internet Explorer не может открыть документы Office с веб-сайта SSL

См. также это руководство по кэшированию Предупреждение:Прагма без кэша устарела.Имея это в виду, я установил «Вывод и отладка Expression Engine»> «Создать заголовки страниц HTTP»?вариант Нет.(Другие платформы имеют аналогичные параметры конфигурации).Но некоторые другие автоматически отправленные заголовки были необходимы для успешного кэширования остальной части сайта, поэтому я решил закомментировать Pragma:строки без кэша в исходном коде фреймворка.

Если у вас нет возможности изменять заголовки HTTP, отправляемые вашим веб-сервером/инфраструктурой, единственным вариантом только на стороне клиента MS-Office будет использование макросов VBA для автоматизации компонента Internet Explorer для обхода поведения кэширования Office. .Видеть Различные способы использования веб-запросов в Microsoft Office Excel 2003 в качестве отправной точки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top