Bonne pratique
Si votre infrastructure SQL comporte des instances nommées (nom_serveur\nom_instance), il ne faut pas les utiliser avec Sharepoint. Utiliser à la place un alias.
Explication
L’automne dernier, j’ai été impliqué dans le changement de serveur SQL d’une ferme Sharepoint qui utilisait une instance nommée comme nom de serveur SQL hébergeant les banques de données de Sharepoint. Après plusieurs tentatives infructueuses avec la procédure de migration de Microsoft, et quelques étapes supplémentaires nous ne sommes pas parvenu à venir à migrer complètement la ferme. À l’époque, nous avions fait des recherches directement dans la banque de configuration SQL pour se rendre compte que l’instance nommée n’était pas changée par la commande stsadm renameserver. Nous avions donc décidé de reconstruire la ferme avec un alias.
Le temps nous a donné raison car le 30 mars dernier, Microsoft modifiait la procédure pour annoncer que la commande stsadm renameserver, ne prennait pas en charge un nom de serveur avec une instance nommée (nom_serveur\nom_instance).
En guise de conclusion à cette série de billet concernant la gestion du Web.config, voici quelques bonnes pratiques et pièges à éviter concernant la gestion du Web.config.
Bonnes pratiques
- Ne pas modifier le contenu du Web.config manuellement à moins d’y être forcé par une situation particulière (voir la partie 6);
- Pour ajouter un élément au Web.config de l’ensemble des applications Web, utilisez la technique présentée à la partie 2;
- Pour ajouter un élément au Web.config d’un seul application Webm utilisez la technique présentée à la partie 3;
- Pour ajouter un “safe control” ou une règle CAS, utiliser le manifest.xml de la solution Sharepoint tel que présentée à la partie 4;
- Pour les “AppSetting”, dans la mesure du possible, utiliser une seule manière normalisée pour l’ensemble des paramètres des applications Web;
Pièges à retenir
L’utilisation de la classe SPWebConfigModification est sujet à quelques problèmes résumés ci-dessous et très bien expliqués dans l’article de Reza Alirezaei :
- La documentation est faible;
- Lorsqu’on applique un changement à l’aide de SPWebConfigModification, le changement s’applique sur l’ensemble des zones de l’application Web, Lorsqu’on retire le changement, ce dernier est retiré seulement sur la zone Defaut et il faut retirer les éléments à la main sur les autres zones;
- Il n’est pas possible de faire un changement sur une seule zone;
- Si on utilise EnsureSection, les changements ne seront pas retirés;
- SPWebConfigModification ne peut pas être utilisé pour ajouter certains éléments tel que : assemblyBinding;
- L’instruction
SPFarm.Local.Services.GetValue<SPWebService>().ApplyWebConfigModifications(); ne fonctionne pas, il faut plutôt utilisé l’instruction webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
L’utilisation de la commande stsadm -o copyappbincontent effacera les modifications manuelles apportées au Web.config.
Plus d’une semaine a passée depuis la fin de la conférence et certains présentateurs ont publiés leurs présentations sur internet. Voici la liste que j’ai pu recueillir jusqu’à maintenant :
De Andrew Woodward :
De Joel Oleson :
De Jason Modero
De Gary Lapointe
De Paul Culmsee
De Todd Klindt
De Natalya Voskresenskaya
De Paul Galvin
Je recommande à tous de consulter les présentations. C’est un must !