SharePoint Online 內容不會顯示在 SharePoint 內部部署搜尋中

問題

請考慮下列情節:

  • 您可以設定輸出混合式搜尋,以從 SharePoint 2013 內部部署環境中的 SharePoint Online 傳回結果。

  • 當使用者從 SharePoint 2013 內部部署網站執行查詢時,只會顯示來自 SharePoint 2013 內部部署環境的結果。 SharePoint Online 不會傳回任何結果。

  • 系統管理員會編輯與結果來源相關聯的查詢規則。 然後,系統管理員會從結果區塊開啟查詢產生器。 不過,這會觸發下列錯誤:

    1 3/4 System.Net.WebException:要求已中止:要求已取消。 -->Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2ErrorResponseException:遠端伺服器傳回錯誤: (404) 找不到。 at Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2Client.GetResponse (Uri stsurl, OAuth2AccessTokenRequest message) at Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2Client.RequestOAuthToken (Uri stsUrl.OAuth2AccessTokenRequest 要求) 在 stslnfo,OAuth2EndpointIdentity endpointldentity) at Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2SecurityTokenManager.GetRawBearerToken (String nameldentifier, SPSecurityTokenServiceConnectionInformation stslnfo.

此外,統一記錄服務 (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 應用程式 Proxy 是否以數據分割模式部署。 如果是,請移除 Proxy,然後重新建立 Proxy,而不使用數據分割模式。

筆記

  • 當內部部署搜尋服務 應用程式 Proxy 以數據分割模式部署時,Microsoft 365 不支援傳入混合式搜尋查詢。

  • 遵循最佳操作作法並執行備份,然後再遵循下列步驟。 如需詳細資訊,請移至在 SharePoint Server 中備份 搜尋服務 應用程式

若要這樣做,請在 SharePoint 管理命令介面中遵循下列步驟。

  1. 取得 Search Service 應用程式的識別碼。 若要這樣做,請執行下列 Cmdlet:

    $ssa=Get-SPEnterpriseSearchServiceApplication
    
  2. 取得 Search Service 應用程式 Proxy 的識別碼。 若要這樣做,請執行下列 Cmdlet:

    $ssaproxy=Get-SPServiceApplicationProxy –identity <guid>
    

    注意 服務應用程式 Proxy GUID 對每個伺服器數位都是唯一的。 執行 Get-SPServiceApplicationProxy Cmdlet,並記下搜尋服務應用程式 Proxy 的 GUID。

  3. 檢閱 $ssaproxy.properties 結果。 Proxy 應該列為分割區。 如果是這種情況,請移至步驟 4 以更新 Proxy 屬性。

  4. 更新 Proxy 屬性。 若要這樣做,請執行下列 Cmdlet:

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

    完成這些步驟之後,請檢查問題是否已解決。 否則,請移至步驟 5 以移除並重新建立 Proxy。

  5. 拿掉 Search Service 應用程式 Proxy。 若要這樣做,請執行下列 Cmdlet:

    Remove-SPServiceApplicationProxy $ssaproxy
    
  6. 建立新的 Search Service 應用程式 Proxy。 若要這樣做,請執行下列 Cmdlet:

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

遵循這些步驟之後,SharePoint 2013 內部部署搜尋伺服器數組應該會開始從 SharePoint Online 傳回結果。

其他相關資訊

如需詳細資訊,請移至 瞭解 SharePoint Server 2013 中的多租使用者

是否仍需要協助? 請前往 Microsoft 社群