SharePoint 2010 / 2013 : La recherche ne fonctionne plus (sur aucun site)

SPDesigner Il y a de multiples définitions pour « la recherche ne fonctionne plus ». Il n’est pas question ici d’indexation, mais de l’impossibilité pour tous les utilisateurs de tous les sites de lancer une recherche.

 

Contexte : Ferme SharePoint 2010 ou 2013, Windows Server 2008 / 2008 R2.
Symptôme : Le lancement d’une recherche sur un site web aboutit à une erreur (Exception). Dans les fichiers de logs SharePoint, il y a des entrées du type :
« Tentative d’opération non autorisée sur une clé du Registre marquée pour suppression »
Dans le journal des événements Windows, il y a :
« Windows a détecté que votre fichier de Registre est toujours utilisé par d’autres applications ou services. Le fichier va être déchargé… »
Diagnostic : le compte de service de recherche essaie d’accéder à une clé de registre, mais il ne peut pas. Une session a pu être ouverte avec ce compte de service sur l’un des serveurs de la ferme (en bureau à distance). Des services ont été redémarrés (ou tentés de l’être). Puis la session a été fermée. Les ouvertures et fermetures de session provoques des ajouts / suppression de clés dans la base de registre. Il SEMBLERAIT que les services qui ont été redémarrés cherchent à accéder à ces clés, alors qu’elles étaient supprimées une fois la session fermée. Cette situation est expliquée ici : blogs.msdn.com.
Solution (Dans le cas du service de recherche) :

  • Dans services.msc : Redémarrer les services « SharePoint Server Search 14 » et “SharePoint Foundation Search V4” (si déjà démarrés)
  • Dans IIS : Recycler le pool d’application « SecurityTokenServiceApplicationPool » sur tous les serveurs SharePoint
  • Dans l’administration centrale de SharePoint : Aller dans « Gérer les services sur le serveur », et redémarrer : « Service de paramètres de site et de requête de recherche ».
  • En dernier recours, un reboot de serveur serait une solution, mais provoquerai une coupure de service, ce qui n’est pas toujours souhaitable.

Comment ne pas réitérer cet incident ?
Ne pas se connecter avec les comptes de service pour relancer les services eux-mêmes.
Il y aurait également une GPO (« Do not forcefully unload the user registry at user logoff ») à modifier (Lien externe), mais ceci nécessite un accord avec les administrateurs du domaine (risque de GPO locales écrasées).

WSS / MOSS : Quelques problèmes connus à propos du service de recherche

Bien configurer les services de recherche dans une ferme SharePoint…
MOSS + SSP – Symptôme : L’indexation échoue, la recherche sur les sites ne renvoie rien, etc.
Il faut faire attention à ne pas dédier un frontal pour l’analyse des requêtes. (« Administration centrale > Opérations > Services sur le serveur > Paramètres du service Office SharePoint Server Search »). Cette configuration doit être justifiée, et en plus nécessite des pré-requis précis. Voir ce billet MSDN.
 
WSS ou MOSS – Symptôme : Echec de l’indexation. Erreurs 2424 et 2436 dans le journal des événements.
Un update de sécurité des serveurs Windows (2003 / 2008) rend les resolutions d’adresses locales impossibles. Du coup le service d’indexation n’arrive pas à résoudre les URL de son propre serveur !
2 solutions possibles : Changer la valeur de la clé de registre « DisableLoopbackCheck », ou lister les URL autorisées en base de registre.
Billet complet sur ce problème
KB de Microsoft
 
WSS – Symptôme : Une recherche sur un site renvoie : « Impossible d’effectuer la recherche car ce site n’est affecté à aucun indexeur »
Il faut configurer le serveur de recherche pour cette appli web : « Administration centrale > Gestion des applications > Bases de données de contenu »
Sélection l’application web concernée, cliquer sur la BDD, et sélectionner le « Serveur de recherche » dans la liste déroulante.
Cliquer sur « OK ».