Сбой моментальных снимков коллекции PowerPivot для сайтов заголовков узла SSL

Эта статья была написана РикОм Андрингом( Rick Andring), инженером по эскалации поддержки.

Если вы следили за несколькими потоками о проблемах и изменениях моментальных снимков коллекции PowerPivot для SharePoint 2016, возможно, вы знаете о проблеме, из-за которой моментальные снимки коллекции не работают должным образом (бесконечные "песочные часы") для сайтов SSL при наличии нескольких сайтов, привязанных к одному порту. Не ограничиваясь портом 443, в качестве примера здесь будет использоваться универсальный сайт 443, так как это наиболее распространенное использование.

Эта проблема была обнаружена еще в декабре 2016 года во время тестирования и снова в хорошо изученном блоге Брайан Лоу (https://info.summit7systems.com/blog/bug-report-powerpivot-for-sharepoint-2016-thumbnails-not-generating) в феврале 2017 года.

Снимок экрана: проблема в коллекции PowerPivot.

Подробные сведения о процессе snapshot или записях журнала не рассматриваются в этой записи (вы можете просмотреть блог Брайана выше для большинства из них или следить за этим в журналах ULS). Вот вид на 10 000 футов:

  1. Пользователь отправляет новую книгу PowerPivot в коллекцию.

  2. Приемник событий определяет файл и определяет, является ли он допустимым для snapshot.

  3. SharePoint вызывает ExcelRest.aspx для каждого соответствующего элемента в книге по URL-адресу, аналогичному следующему примеру:

    https:// localhost/_vti_bin/ExcelRest.aspx/PowerPivot%20Gallery/GenericWorkbook.xlsx/Model/Sheets('Sheet1')

  4. В рамках приведенного выше вызова полный URL-адрес документа отправляется с запросом в OOS от имени пользователя, отправляющего документ. (Очевидно, что "localhost" не является допустимым URL-адресом для OOS, поэтому мы также отправим полный URL-адрес в рамках запроса, и OOS знает, куда следует получить моментальные снимки.)

  5. Office Online Server загружает книгу, извлекает моментальные снимки и возвращает их на сервер SharePoint WFE.

  6. Моментальные снимки применяются к документу.

Проблема

Новый процесс snapshot вызывает проблему для сайтов SSL, которые совместно используют порт и используют уникальные сертификаты. При объединении нескольких уникальных URL-адресов, каждый из которых имеет собственные уникальные SSL-сертификаты и вызовы localhost, iis запутается в том, какой сертификат закрепить в запросе (так как это localhost, он обычно принимает первый в строке). Чтобы избежать двойного прыжка проверки подлинности в сценарии, в котором задействовано несколько веб-интерфейсов SharePoint (WFE), группа разработчиков решила использовать localhost. Если этого не произошло, необходимо было бы настроить ограниченное делегирование Kerberos (KCD) между серверами WFE SharePoint, чтобы избежать чрезмерной конфигурации, чтобы обеспечить правильную работу моментальных снимков коллекции.

В журналах SharePoint ULS вы увидите набор записей, аналогичных приведенным ниже, с подробными сведениями о сбое:

00/00/2017 00:00:00:00 w3wp.exe (0xXXXX) 0x18A8 PowerPivot
Service Unknown 46 Medium Capturing Report Gallery snapshot information
from the following URL:
https://localhost/_vti_bin/ExcelRest.aspx/PowerPivot
Gallery/GenericWorkbook.xlsx/model/Sheets 37abef9d-92a8-20b9-17bb-d369b513965b

00/00/2017 00:00:00:00 w3wp.exe (0xXXXX) 0x18A8 PowerPivot
Service Unknown 46 High Snapshot <strong>Exception: Unable to take snapshots or
get details of the file: https://ssl.contoso.com/PowerPivot
Gallery/GenericWorkbook.xlsx from the uri:
https://localhost/_vti_bin/ExcelRest.aspx/PowerPivot
Gallery/GenericWorkbook.xlsx/model/Sheets. 37abef9d-92a8-20b9-17bb-d369b513965b

00/00/2017 00:00:00:00 w3wp.exe (0xXXXX) 0x18A8 PowerPivot
Service Unknown 46 <strong>High Snapshot Exception: Ensure localhost uris are
allowed</strong>. 37abef9d-92a8-20b9-17bb-d369b513965b

00/00/2017 00:00:00:00 w3wp.exe (0xXXXX) 0x18A8 PowerPivot
Service Report Gallery 99 High <strong>EXCEPTION: System.Net.WebException: The
underlying connection was closed: An unexpected error occurred on a
send</strong>. <<Truncated stack>> 37abef9d-92a8-20b9-17bb-d369b513965b

Во время нескольких попыток сузить эту область мы могли увидеть, как snapshot процесс пытается загрузить первый привязанный к сайту сертификат в нашем списке (для моего "дополнительного" SSL-сайта) вместо сертификата для ssl.contoso.com. Из-за вызова localhost IIS путают (очевидно), какой сертификат следует раздать для запроса. Эта проблема связана с фермами, где все остальное настроено правильно и функционально, но это не ограничивается только этим сценарием. Это просто самая распространенная (и базовая) конфигурация.

Команда разработчиков определила, что это по умолчанию и не будет изменено из-за ограничений продукта SharePoint и Office Online Server.

Обходной путь

  • Можно использовать сертификат с подстановочными знаками. Это единственный возможный обходной путь, который мы нашли до сих пор. С помощью сертификата с подстановочными знаками для сайтов можно использовать несколько сайтов заголовков узлов SSL, и моментальные снимки коллекции будут работать (это было проверено и подтверждено работой). Опять же, это предполагает, что все остальное правильно настроено для работы моментальных снимков. Мы понимаем, что это не является жизнеспособным для всех, но это только возможность сохранить сайты SSL и иметь функциональные моментальные снимки на данный момент.

Примечание.

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

Другие параметры

  • Вы можете ограничить использование одним SSL-сайтом с заголовком узла и сертификатом и без привязки к IP-адресу (SSL-сертификаты и привязки для конкретного IP-адреса обычно идут рука об руку).

  • Прекратите использовать коллекцию PowerPivot. Вы можете запланировать обновление данных для книг PowerPivot в любой библиотеке документов при условии, что решение PowerPivot развернуто в веб-приложении и функции активируются на сайте.

  • Преобразуйте сайты SSL в HTTP. (Может быть, даже только сайты, на которых размещены книги?)

  • Задайте для параметра "Все документы" представление по умолчанию в коллекции PowerPivot:

    1. Перейдите к списку владельца сайта.
    2. Выберите "Библиотека" > "Параметры библиотеки" в меню ленты.
      Снимок экрана: выбор элемента
    3. Прокрутите вниз до раздела Представления и щелкните Все документы.
      Снимок экрана: раздел
    4. Установите флажок Создать представление по умолчанию и нажмите кнопку "ОК"
      Снимок экрана: проверка поле
  • Вы можете сделать еще больше, удалив представления Silverlight в коллекции PowerPivot:

    • (Сначала выполните действия, описанные выше в разделе "Установка представления "Все документы" в представление по умолчанию)

      1. Перейдите к списку владельца сайта.
      2. Выберите "Библиотека" > "Параметры библиотеки" в меню ленты.
        Снимок экрана: выбор элемента
      3. Прокрутите вниз до раздела "Представления" и щелкните любой из трех представлений PowerPivot Silverlight "Галерея", "Театр" и "Карусель".
        Снимок экрана: раздел
      4. Нажмите кнопку "Удалить".
        Снимок экрана: нажатие кнопки Удалить в коллекции PowerPivot.
  • Вы также можете удалить или скрыть дополнительные представления с помощью PowerShell (примеры скриптов прилагается ниже):

    • Удаление и скрытие примеров скриптов

      Примечание.

      Для текущих коллекций PowerPivot они будут продолжать пытаться создавать моментальные снимки, даже если вы отключите или удалите представления. Единственный способ остановить попытку создания моментальных снимков — заменить коллекцию обычной библиотекой документов. Пока вы сохраните функции PowerPivot, развернутые на сайте, вы по-прежнему сможете планировать обновление данных в обычном режиме. Настоятельно рекомендуется тщательно протестировать эти скрипты в среде разработки, прежде чем использовать их на ферме, которая имеет значение.

В этой статье рассматривается проблема, связанная с моментальными снимками коллекции PowerPivot в SharePoint 2016, и она не ссылается на другие продукты. Если вы видите аналогичные ошибки в других версиях SharePoint, приведенный здесь список решений и рекомендаций не поможет и не имеет отношения к вашей проблеме. Скрипты PowerShell, представленные в этой статье, предоставляются в качестве примеров для тестирования без каких-либо гарантий или гарантий корпорации Майкрософт.