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) が見つかりませんでした。 Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2Client.GetResponse(Uri stsurl, OAuth2AccessTokenRequest message) at 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.
さらに、次の例外が統合ログサービス(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)
ソリューション
この問題を解決するには、検索サービス アプリケーション プロキシがパーティション モードで展開されたかどうかを確認します。 その場合は、パーティション モードを使用せずにプロキシを削除してから再作成します。
注:
Office 365 では、オンプレミスの Search Service アプリケーション プロキシがパーティション モードで展開されている場合、着信ハイブリッド検索クエリはサポートしていません。
これらの手順に従う前に、運用上のベストプラクティスに従い、バックアップを実行します。 詳細については、「 SharePoint Server の検索サービス アプリケーションのバックアップ」を参照してください。
これを行うには、SharePoint 管理シェルで次の手順を実行します。
検索サービス アプリケーションの ID を取得します。 これを行うには、以下のコマンドレットを実行します。
$ssa=Get-SPEnterpriseSearchServiceApplication
検索サービス アプリケーション プロキシの ID を取得します。 これを行うには、以下のコマンドレットを実行します。
$ssaproxy=Get-SPServiceApplicationProxy –identity <guid>
注:サービスアプリケーションプロキシ GUID は、すべてのファームに一意です。 Get-SPServiceApplicationProxy の cmdlet を実行し、検索サービス アプリケーション プロキシの GUID に注意してください。
$ssaproxy.properties の結果を確認します。 プロキシはパーティションとしてリストされる必要があります。 この場合は、手順 4 に進み、プロキシ プロパティを更新します。
プロキシ プロパティを更新します。 これを行うには、以下のコマンドレットを実行します。
$proxy = get-spenterprisesearchserviceapplicationproxy $proxy.Properties["Microsoft.Office.Server.Utilities.SPPartitionOptions"] = 0 $proxy.Update() $ssa = get-spenterprisesearchserviceapplication $ssa.SetProperty("IgnoreTenantization",1) $ssa.Update()
各手順が完了したら、問題が解決されたかどうかを確認します。 それ以外の場合は、手順 5 に進んでプロキシを削除して再作成します。
検索サービス アプリケーション プロキシを削除します。 これを行うには、以下のコマンドレットを実行します。
Remove-SPServiceApplicationProxy $ssaproxy
新しい検索サービス アプリケーション プロキシを作成します。 これを行うには、以下のコマンドレットを実行します。
New-SPEnterpriseSearchServiceApplicationProxy -SearchApplication $ssa -Name "Search Service Application Proxy"
これらの手順を実行すると、SharePoint 2013 オンプレミス検索ファームで、SharePoint Online からの結果を返すようになります。
詳細
詳細については、「SharePoint Server 2013 のマルチテナントについて」を参照してください。
さらにヘルプが必要ですか? SharePoint コミュニティにアクセスしてください。