Retrouver le message d'erreur de SharePoint depuis le Correlation ID

Comme souvent dans SharePoint, un problème commence avec un écran comme celui-ci :




Suite à ce message, nous n'apprenons pas grand chose sur ce qu'il nous arrive. Au mieux, nous avons une date et une heure précédées d'un "Correlation ID" et d'une description des plus explicites : "An unexpected error has occurred."

Comment faire alors pour en savoir d'avantage sur ce qu'il s'est passé ? Et bien plusieurs possibilités s'offrent à nous. 




Les fichiers de LOGS
Cette méthode permet d'avoir plus d'informations concernant cette erreur en parcourant les fichiers de logs de SharePoint. Pour ce faire, nous allons explorer les bas-fonds du Hive en se connectant sur le serveur SharePoint du site ayant provoqué cette erreur (après avoir pris soin de noter la date et l'heure ainsi que le GUID de l'erreur).

Lorsque vous êtes sur le serveur, rendez-vous dans le Hive en suivant l'URL suivante :

     c:\Program Files\Common Files\Microsoft Share\Web Server Extension\14

En fonction de la version de SharePoint, le nombre à la fin change. Pour SharePoint 2007 nous aurons un 12, pour SharePoint 2010 un 14 et pour SharePoint 2013 un 15.

Maintenant, nous sommes dans le Hive.



Dans ce répertoire, ouvrez le répertoire LOGS afin d'afficher les logs SharePoint de la machine. 


Attention, si votre ferme SharePoint contient plusieurs serveurs, comme par exemple deux 
front-ends en NLB, il vous faut vérifier les logs sur chacun d'entre-eux.

Ouvrez le fichier de logs qui, en fonction de sa date et son heure, contient votre erreur. Ici, comme notre erreur est arrivée à 7h58, nous prendrons le fichier créé à 7h53 et modifié la dernière fois à 8h01. Dans ce fichier, nous allons rechercher le GUID de l'erreur de départ :


Et voici le message d'erreur que nous recherchions.


Le script PowerShell (SharePoint 2010 et 2013 uniquement)
Une deuxième méthode consiste à demander à SharePoint de nous fournir le détail de l'erreur en l'interrogeant au travers de PowerShell (j'adore la paresse, surtout si celle-ci augmente la productivité :) ).

La commande est la suivante : 

     get-splogevent | ?{$_Correlation -eq "7cd48C88-0fa8-4143-88b5-c311caecf34f" }

Cela nous renvoi la réponse suivante :



Et pour avoir le message d'erreur complet, utilisez la commande suivante :

     get-splogevent | ?{$_Correlation -eq "7cd48C88-0fa8-4143-88b5-c311caecf34f" } | select message | Format-List

Ça vous donnera :


Pour plus de détails sur cette commande magique bien qu'un peu lente, je vous conseille cet article sur le site de Microsoft : article Technet.


Par requête SQL Server ou Par développement
Pour retrouver la signification d'une erreur par SQL Server ou par code, je vous renvoi vers le très bon BLOG de Tobiaz Zimmergren : article en question.


Aucun commentaire:

Enregistrer un commentaire