Partilhar via


Os conteúdos do SharePoint Online não são apresentados numa pesquisa no local do SharePoint

Problema

Considere o seguinte cenário:

  • Pode configurar a Pesquisa Híbrida de saída para devolver resultados do SharePoint Online num ambiente no local do SharePoint 2013.

  • Quando um utilizador efetua uma consulta a partir de um site do SharePoint 2013 no local, apenas são apresentados os resultados do ambiente no local do SharePoint 2013. Não são devolvidos resultados do SharePoint Online.

  • Um administrador edita a regra de consulta associada às origens de resultados. Em seguida, o administrador abre o Construtor de Consultas a partir do bloco de resultados. No entanto, isto aciona o seguinte erro:

    1 3/4 System.Net.WebException: O pedido foi abortado: O pedido foi cancelado. -->Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2ErrorResponseException: O servidor remoto devolveu um erro: (404) Não Encontrado. em Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2Client.GetResponse(Uri stsurl, OAuth2AccessTokenRequest message) em Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2Client.RequestOAuthToken(Uri stsUrl. OAuth2AccessTokenRequest request) at stslnfo, OAuth2EndpointIdentity endpointldentity) at Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2SecurityTokenManager.GetRawBearerToken(String nameldentifier, SPSecurityTokenServiceConnectionInformation stslnfo.

Além disso, a seguinte exceção é registada no registo ULS (Unified Logging Service):

An exception occurred during OAuth2 request to <url specific to your site>
The remote server returned an error: (404) Not Found.
at System.Net.HttpWebRequest.GetResponse()
at Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2Client.GetResponse(Uri stsUrl,
OAuth2AccessTokenRequest message)

Solução

Para resolver este problema, determine se o serviço de pesquisa Proxy de Aplicações foi implementado no modo de partição. Se foi, remova e recrie o proxy sem utilizar o modo de partição.

NOTAS

Para tal, siga estes passos na Shell de Gestão do SharePoint.

  1. Obtenha o ID da Aplicação de Serviço de Pesquisa. Para tal, execute o seguinte cmdlet:

    $ssa=Get-SPEnterpriseSearchServiceApplication
    
  2. Obtenha o ID do Serviço de Pesquisa Proxy de Aplicações. Para tal, execute o seguinte cmdlet:

    $ssaproxy=Get-SPServiceApplicationProxy –identity <guid>
    

    NOTA O GUID do proxy da aplicação de serviço é exclusivo para todos os farms. Execute o cmdlet Get-SPServiceApplicationProxy e anote o GUID do proxy de aplicações do serviço de pesquisa.

  3. Reveja os resultados $ssaproxy.properties. O proxy deve ser listado como particionado. Se for este o caso, avance para o passo 4 para atualizar as Propriedades do Proxy.

  4. Atualize as Propriedades do Proxy. Para tal, execute o seguinte cmdlet:

    $proxy = get-spenterprisesearchserviceapplicationproxy
    $proxy.Properties["Microsoft.Office.Server.Utilities.SPPartitionOptions"] = 0
    $proxy.Update()
    $ssa = get-spenterprisesearchserviceapplication
    $ssa.SetProperty("IgnoreTenantization",1)
    $ssa.Update()
    

    Depois de concluir estes passos, verifique se o problema está resolvido. Caso contrário, avance para o passo 5 para remover e recriar o proxy.

  5. Remover Proxy de Aplicações do Serviço de Pesquisa. Para tal, execute o seguinte cmdlet:

    Remove-SPServiceApplicationProxy $ssaproxy
    
  6. Crie uma nova Proxy de Aplicações do Serviço de Pesquisa. Para tal, execute o seguinte cmdlet:

    New-SPEnterpriseSearchServiceApplicationProxy -SearchApplication $ssa -Name "Search Service Application Proxy"
    

Depois de seguir estes passos, o farm de pesquisa no local do SharePoint 2013 deverá começar a devolver resultados do SharePoint Online.

Mais informações

Para obter mais informações, aceda a Compreender multi-inquilinos no SharePoint Server 2013.

Ainda necessita de ajuda? Vá a Comunidade SharePoint