Instantâneos da Galeria do PowerPivot falham em sites de cabeçalho de host do SSL

Este artigo foi escrito por Rick Andring, Engenheiro de Escalonamento de Suporte.

Se você estiver seguindo os vários threads em problemas e alterações no PowerPivot para Instantâneos da Galeria do SharePoint 2016, talvez esteja ciente de um problema em que os instantâneos da galeria não funcionam corretamente (infinita "ampulheta") para sites SSL quando há vários sites vinculados à mesma porta. Embora não se limite à porta 443, usaremos um site genérico da porta 443 como exemplo aqui, pois é o uso mais comum.

Esse problema foi descoberto em dezembro de 2016 durante os testes e novamente em uma postagem bem pesquisada no blog por Brian Laws (https://info.summit7systems.com/blog/bug-report-powerpivot-for-sharepoint-2016-thumbnails-not-generating) em fevereiro de 2017.

A captura de tela mostra o problema na Galeria do PowerPivot.

Detalhes extensivos sobre o processo de instantâneo ou as entradas de log não são abordados nesta postagem (você pode ver o blog de Brian acima para a maior parte dele ou seguir nos logs do ULS). Aqui está a exibição de 10.000 pés:

  1. Um usuário carrega uma nova pasta de trabalho do PowerPivot para a Galeria.

  2. O receptor de eventos detecta o arquivo e se ele é ou não um arquivo válido para um instantâneo.

  3. O SharePoint chama o ExcelRest.aspx para cada item relevante na pasta de trabalho por meio de uma URL semelhante ao exemplo a seguir:

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

  4. Como parte da chamada acima, a URL completa do documento é enviada com a solicitação ao OOS em nome do usuário que carregou o documento. (Obviamente, "localhost" não é uma URL válida para OOS, portanto, também enviamos a URL completa como parte da solicitação e o OOS sabe para onde ir para recuperar os instantâneos.)

  5. Servidor do Office Online carrega a pasta de trabalho, recupera os instantâneos e os retorna para o servidor WFE do SharePoint.

  6. Os instantâneos são aplicados ao documento.

O problema

O novo processo de instantâneo causa um problema para sites SSL que compartilham uma porta e usam certificados exclusivos. Quando você combina várias URLs exclusivas, cada uma com seus próprios certificados SSL exclusivos e chamadas de localhost, você acaba com o IIS ficando confuso sobre qual certificado fixar à solicitação (já que é localhost, ele usa o primeiro na linha em geral). Em um esforço para evitar um salto duplo de autenticação em um cenário em que mais de uma WFE (web front-end) do SharePoint está envolvida, a equipe de produtos optou por utilizar localhost. Se isso não estivesse em vigor, o KCD (Delegação Restrita) kerberos precisaria ser configurado entre os servidores WFE do SharePoint para evitar uma configuração supercomplicada, apenas para que os instantâneos da galeria funcionassem corretamente.

Nos logs uls do SharePoint, você verá um conjunto de entradas semelhante ao seguinte detalhando a falha:

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

Durante nossas várias tentativas de reduzir isso, pudemos ver o processo instantâneo tentando carregar o primeiro certificado vinculado ao site em nossa lista (para meu site SSL "secundário") em vez do certificado para ssl.contoso.com. Devido à chamada localhost, o IIS está confuso (obviamente) sobre qual certificado distribuir para a solicitação. Esse problema é específico para fazendas em que todo o resto está configurado corretamente e funcional, mas não se limita apenas a esse cenário. Essa é apenas a configuração mais comum (e básica).

A equipe de produtos determinou que isso é por design e não será alterado devido a limitações de produto com o SharePoint e Servidor do Office Online.

A solução alternativa

  • Você pode usar um certificado curinga. Esta é a única solução alternativa possível que encontramos até agora. Com um certificado curinga para seus sites, você pode utilizar vários sites de cabeçalho de host SSL e os instantâneos da galeria funcionarão (isso foi testado e confirmado funcionando). Novamente, isso está supondo que todo o resto esteja configurado corretamente para que os instantâneos funcionem. Percebemos que não é viável para todos, mas é apenas uma opção manter o SSL de sites e ter instantâneos funcionais neste momento.

Observação

Certifique-se de pesquisar todos os aspectos do uso de certificados curinga antes de implementar essa solução para que você esteja totalmente informado sobre os riscos e recompensas de usá-los.

Outras opções

  • Você pode restringir seu uso a um site SSL com cabeçalho e certificado de host e sem associações específicas de IP (certificações SSL específicas do site e associações específicas de IP geralmente andam lado a lado).

  • Pare de usar a Galeria do PowerPivot juntos. Você pode agendar atualizações de dados para pastas de trabalho do PowerPivot em qualquer biblioteca de documentos, desde que a solução do PowerPivot seja implantada no aplicativo Web e os recursos sejam ativados no site.

  • Converta seus sites SSL em HTTP. (Talvez até mesmo apenas os sites que hospedam pastas de trabalho?)

  • Defina "Todos os Documentos" como a exibição padrão na Galeria do PowerPivot:

    1. Navegue até a lista de proprietários de um site.
    2. Clique em "Biblioteca" > "Configurações da Biblioteca" no menu faixa de opções.
      Captura de tela para selecionar o item Configurações da Biblioteca na guia Biblioteca.
    3. Role para baixo até a seção Exibições e clique em Todos os Documentos.
      Captura de tela da seção Exibições com o item Todos os Documentos selecionado.
    4. Marque a caixa Fazer a exibição padrão e clique em "OK"
      Captura de tela para marcar a caixa Fazer a exibição padrão.
  • Você pode dar um passo adiante acima excluindo as exibições do Silverlight na Galeria do PowerPivot:

    • (Faça a seção "Definir "Todos os Documentos" para a exibição padrão" acima primeiro)

      1. Navegue até a lista de proprietários de um site.
      2. Clique em "Biblioteca" > "Configurações da Biblioteca" no menu faixa de opções.
        Captura de tela para selecionar o item Configurações da Biblioteca na guia Biblioteca.
      3. Role para baixo até a seção "Exibições" e clique em qualquer uma das três exibições do PowerPivot Silverlight "Gallery", "Theatre" e "Carrossel".
        Captura de tela da seção Exibições, com os itens Galeria, Teatro e Carrossel selecionados.
      4. Clique em "Excluir".
        Captura de tela para selecionar o botão Excluir na Galeria do PowerPivot.
  • Você também pode excluir/ocultar as exibições extras com o PowerShell (scripts de exemplo anexados abaixo):

    • Excluir e ocultar scripts de exemplo

      Observação

      Para as galerias atuais do PowerPivot, elas continuarão a tentar tirar instantâneos mesmo se você desabilitar/excluir as exibições. A única maneira de impedi-los de tentar criar instantâneos é substituir a galeria por uma biblioteca de documentos normal. Desde que você mantenha os recursos do PowerPivot implantados no site, você ainda poderá agendar atualizações de dados normalmente. Recomendamos que você teste esses scripts extensivamente em um ambiente de desenvolvimento antes de usá-los em um farm que importa.

Este artigo aborda um problema específico para Instantâneos da Galeria do PowerPivot no SharePoint 2016 e não se refere nem faz referência a nenhum outro produto. Se você vir erros semelhantes em outras versões do SharePoint, a lista de soluções/recomendações aqui não ajudará você e não será relevante para o problema. Os scripts do PowerShell fornecidos neste artigo são fornecidos como exemplos para testes sem garantia ou garantia pela Microsoft.