SharePoint Online-innehåll visas inte i en lokal SharePoint-sökning

Problem

Tänk dig följande scenario:

  • Du konfigurerar utgående hybridsökning för att returnera resultat från SharePoint Online i en lokal SharePoint 2013-miljö.

  • När en användare utför en fråga från en lokal SharePoint 2013-webbplats visas endast resultat från den lokala SharePoint 2013-miljön. Inga resultat returneras från SharePoint Online.

  • En administratör redigerar frågeregeln som är associerad med resultatkällorna. Sedan öppnar administratören Query Builder från resultatblocket. Detta utlöser dock följande fel:

    1 3/4 System.Net.WebException: Begäran avbröts: Begäran avbröts. -->Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2ErrorResponseException: Fjärrservern returnerade ett fel: (404) Hittades inte. på Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2Client.GetResponse(Uri stsurl, OAuth2AccessTokenRequest message) på Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2Client.RequestOAuthToken(Uri stsUrl. OAuth2AccessTokenRequest-begäran) på stslnfo, OAuth2EndpointIdentity endpointldentity) på Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2SecurityTokenManager.GetRawBearerToken(String nameldentifier, SPSecurityTokenServiceConnectionInformation stslnfo.

Dessutom loggas följande undantag i ULS-loggen (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)

Lösning

Lös problemet genom att avgöra om söktjänsten Programproxy har distribuerats i partitionsläge. I så fall tar du bort och återskapar proxyn utan att använda partitionsläge.

ANTECKNINGAR

Gör detta genom att följa dessa steg i SharePoint Management Shell.

  1. Hämta ID:t för söktjänstprogrammet. Gör detta genom att köra följande cmdlet:

    $ssa=Get-SPEnterpriseSearchServiceApplication
    
  2. Hämta ID:t för söktjänsten Programproxy. Gör detta genom att köra följande cmdlet:

    $ssaproxy=Get-SPServiceApplicationProxy –identity <guid>
    

    OBSERVERA Proxy-GUID för tjänstprogram är unikt för varje servergrupp. Kör cmdleten Get-SPServiceApplicationProxy och notera GUID för proxyn för söktjänstprogram.

  3. Granska resultatet $ssaproxy.properties. Proxyn bör anges som partitionerad. Om så är fallet går du till steg 4 för att uppdatera proxyegenskaperna.

  4. Uppdatera proxyegenskaperna. Gör detta genom att köra följande cmdlet:

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

    När du har slutfört de här stegen kontrollerar du om problemet har lösts. Annars går du till steg 5 för att ta bort och återskapa proxyn.

  5. Ta bort Programproxy för söktjänsten. Gör detta genom att köra följande cmdlet:

    Remove-SPServiceApplicationProxy $ssaproxy
    
  6. Skapa en ny Programproxy för söktjänsten. Gör detta genom att köra följande cmdlet:

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

När du har följt de här stegen bör den lokala SharePoint 2013-sökgruppen börja returnera resultat från SharePoint Online.

Mer information

Mer information finns i Förstå flera innehavare i SharePoint Server 2013.

Behöver du fortfarande hjälp? Gå till SharePoint Community.