Sharepoint 内部部署搜索中不显示 SharePoint Online 内容

问题

请考虑以下方案。

  • 在 SharePoint 2013 本地环境中,您可以将出站混合搜索配置为返回 SharePoint Online 中的结果。

  • 当用户从 SharePoint 2013 本地站点执行查询时,仅显示 SharePoint 2013 本地环境的结果。 SharePoint Online 未返回任何结果。

  • 管理员编辑与结果源相关联的查询规则。 然后,管理员从结果块中打开查询生成器。 但是,这会触发以下错误:

    1 3/4 系统 WebException:请求已中止:请求已被取消。-->OAuth2。 SPOAuth2ErrorResponseException:远程服务器返回错误:(404)找不到。在 Microsoft.identitymodel.dll (uri stsurl,OAuth2AccessTokenRequest 消息)的 SPOAuth2Client (Uri Microsoft.identitymodel.dll)处查看。 OAuth2 (Uri SPOAuth2Client)。OAuth2AccessTokenRequest 请求)的 stslnfo,OAuth2EndpointIdentity endpointldentity)。 microsoft.identitymodel.dll (String OAuth2,SPOAuth2SecurityTokenManager GetRawBearerToken。

此外,在统一日志记录服务(ULS)日志中记录以下异常:

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)

解决方案

若要解决此问题,请确定是否已在分区模式下部署 Search Service 应用程序代理。 如果是,则删除代理,然后重新创建代理,而不使用分区模式。

备注

若要执行此操作,请在 SharePoint 命令行管理程序中执行以下步骤。

  1. 获取 Search Service 应用程序的 ID。 为此,请运行以下 cmdlet:

    $ssa=Get-SPEnterpriseSearchServiceApplication
    
  2. 获取 Search Service 应用程序代理的 ID。 为此,请运行以下 cmdlet:

    $ssaproxy=Get-SPServiceApplicationProxy –identity <guid>
    

    注释服务应用程序代理 GUID 对每个服务器场都是唯一的。 运行 SPServiceApplicationProxy cmdlet,并记下 search service 应用程序代理的 GUID。

  3. 查看 $ssaproxy 的属性结果。 应将代理列为已分区。 如果是这种情况,请转到步骤4更新代理属性。

  4. 更新代理属性。 为此,请运行以下 cmdlet:

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

    完成这些步骤后,请检查问题是否已解决。 否则,请转到步骤5以删除并重新创建代理。

  5. 删除 Search Service 应用程序代理。 为此,请运行以下 cmdlet:

    Remove-SPServiceApplicationProxy $ssaproxy
    
  6. 创建新的 Search Service 应用程序代理。 为此,请运行以下 cmdlet:

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

按照这些步骤操作后,SharePoint 2013 本地搜索服务器场应开始从 SharePoint Online 返回结果。

更多信息

有关详细信息,请转到了解 SharePoint Server 2013 中的多租户

是否仍需要帮助? 转到SharePoint 社区