SharePoint : La suppression d'une colonne provoque une "erreur inconnue"

L’un connu, l’autre pas.
Symptôme : Le fait de supprimer la colonne d’une liste provoque une erreur inconnue. La trace est la suivante :
w3wp.exe (0x0AA8) 0x044C Windows SharePoint Services General 8dzz High Exception Type: System.Web.HttpException Exception Message: Unable to validate data.
Diagnotic : Certaines pages systèmes (dans /_layouts/*.aspx) ne supportent pas la présence d’une webpart de recherche dans la page maître. Article détaillé.
Solution : Si la page maître d’application “application.master” contient une webpart de recherche, il faut la supprimer (édition dans un bloc note, puis publication dans la galerie des pages maitres du site).

SharePoint 2010 : Renommer une URL de sous-site et c'est le drame…

Renommer une URL de sous-site provoque une perte des données.
Symptôme : Dans SharePoint 2010, dans “Actions du site > Paramètres du site > Titre”, il est possible de modifier l’URL d’un sous-site. Après la modification, le site devient inaccessible, ou tout son contenu est perdu.
Diagnotic : L’URL donnée au sous-site est déjà utilisée (par une collection de sites par exemple). SharePoint a failli à sa tâche de prévenir l’utilisateur.
Solution : Restaurer la base de données de contenu. Puis au choix : Renommer l’URL du sous-site sous un autre nom. OU (si la collection de site est obsolète) supprimer la collection de sites ET le chemin d’accès géré, et renommer le sous-site comme voulu.

Snake7 : Algorithme du mouvement du serpent

Voici comment j’ai développé le mouvement du serpent dans Snake7. Pour rappel, le serpent va dans toutes les directions de manière fluide (à l’inverse du serpent classique qui va de « carré en carré » dans 4 directions).
[youtube=http://www.youtube.com/watch?v=CbzXohlMvMc]
Situation de base : Le serpent est constitué de plusieurs tronçons et de la tête. Le joueur contrôle uniquement le déplacement de la tête, et les tronçons doivent suivre.
Problématiques : 

  • Un tronçon ne connait que le tronçon qui le précède. Il n’y a pas d’intérêt à ce qu’il connaisse la position ou le comportement de la tête.
  • Pas question non plus qu’un tronçon suive exactement le même chemin que le tronçon précédent (A l’instant t, la position du tronçon x ne sera pas la position du tronçon x-1 à l’instant t-1) : Cela donnerai un mouvement trop rigide !

Solution : A chaque instant, un tronçon doit toujours se trouver la même distance du tronçon précédent. Si le tronçon précédent s’éloigne, le tronçon doit s’en approcher par le chemin le plus court.
Voici un schéma de la structure du serpent , ici composé de 4 tronçons :

… où tous les segments rouges sont de la même longueur.
Scénario 
Prenons 2 tronçons A et B, séparés de la longueur « d ». B se déplace, A doit suivre et venir se « coller » à B en gardant la même distance « d » :

Comment déterminer le chemin que doit prendre A ? Schématisons un peu mieux la situation :

d, x1 et y1 sont connus ! Reste à connaitre x2 et y2 (déplacement horizontal et vertical de A)
Et bien pour cela, on ressort nos bons vieux théorèmes de Pythagore et Thalès !

Hexx

Jouez contre votre téléphone ou un ami ! 
12  plateaux de jeu à découvrir ! Basé sur le célèbre jeu Hexagon, Hexx est une adaption plus poussée pour Windows Phone 7. Vous faites partie du bataillon vert, et vous combattez les rouges en déplaçant ou dupliquant vos positions.
Hexx est proposé en version complète et gratuite !

SharePoint : "stsadm -o backup" renvoie des erreurs KeyNotFoundException

Où sont passées les clés ?
Symptôme : Lors d’un backup catastrophique de la ferme, l’erreur “KeyNotFoundException” peut survenir, notammanent pour les objets liés à la recherche SSP (“Index de recherche partagé” ou la base de données associée).
Explication : Plusieurs causes sont envisageables. Notamment un index déféctueux ou obsolète. Le mieux est de vérifier si les services de recherche sont bien configurés et démarrés (dans l’admin centrale, mais aussi dans les services partagés).
Solution 1 : Purger les index.

  • Accéder au serveur d’administration incriminé.
  • Ouvrir l’Administration centrale de SharePoint 3.0
  • Accéder au site des services partagés
  • Cliquer sur « Administration de la recherche »
  • A gauche, cliquer sur « Réinitialiser tout le contenu analysé ».
  • Cliquer sur le bouton « Réinitialiser maintenant », confirmer par “OK”.
  • La sauvegarde ne devrait plus retourner d’erreurs.

Solution 2 : Dans le cas où le script ne fonctionne toujours pas, on redémarre les services de recherche en vérifiant leur bonne configuration.

  • Aller dans l’administration centrale
  • Cliquer sur « Opérations », puis « Services sur le serveur »
  • Arrêter le service « Service de recherche Office SharePoint Server », et confirmer.
  • Démarrer ce même service
  • Cliquer sur « Opérations », puis « Services sur le serveur »
  • Cliquer sur « Recherche d’aide Windows SharePoint Services » (ou « recherche d’aide… » selon la version).
  • Confirmer le compte et mot de passe du « compte d’accès au contenu », cliquer sur OK.
  • Cliquer sur « Administration de services partagés »
  • Faire « Modifier » sur le service partagé, et lui associer le serveur d’indexation.
  • Le service de recherche SSP devrait fonctionner, et le script de sauvegarde ne devrait plus retourner d’erreurs.

La solution 2 a fonctionné dans un cas précis. Seul problème : on perd ses index, et dans le cas de fermes SharePoint conséquentes, d’autres solutions sont à envisager.

SharePoint : déploiement global d'une solution

Pour qu’une solution soit déployable globalement, il faut qu’elle réunisse les conditions suivantes :
– Elle ne doit pas contenir de web controls.
– Elle ne doit pas contenir de web parts.
Pourquoi ? Parce que ce type d’éléments provoque une modification du fichier web.config, d’où la nécéssité de cibler explicitement les web app concernées.