2009-10-14 9 views
0

J'ai découvert que la désactivation d'une fonctionnalité dans Sharepoint laisse des entrées erronées dans la table AllDocs de la base de données de contenu. Ces enregistrements de table rendent alors impossible le déploiement d'autres fonctionnalités qui contiennent les mêmes noms de fichiers, car Sharepoint se plaint qu'ils existent déjà. Comment puis-je m'assurer que la désactivation des fonctionnalités ne laisse pas d'anciennes références dans la base de données de contenu?Bogue Sharepoint lors de la désactivation des fonctionnalités

Microsoft dit explicitement que nous ne devrions pas exécuter des requêtes directement sur la base de données, sinon il ne sera plus supporté.

le meilleur

Répondre

2

Je me souviens avoir cette erreur quand je tentais de redéployer une fonctionnalité qui n'a pas été réellement supprimé. Peut-être que vous avez juste besoin d'aller un peu plus loin?

stsadm -o deactivatefeature -name YourSolutionName -url http://yoururl 
stsadm -o retractsolution -name yoursolution.wsp -immediate 
stsadm -o execadmsvcjobs 
stsadm -o deletesolution -name yoursolution.wsp -override 
stsadm -o execadmsvcjobs 

EDIT: Je voudrais également ajouter mon accord que vous ne devriez jamais essayer de modifier directement la base de données.

+0

@mayo - Je pense que dans YourSolutionName ci-dessus serait le nom de la fonctionnalité? Est-ce que faire cela via stsadm fait quelque chose de plus que d'utiliser l'interface utilisateur pour le faire? – 78lro

+0

Je voulais dire le nom de la fonctionnalité - la solution est vraiment un package pour la fonctionnalité et je ne pense pas qu'il a un nom au-delà du nom de fichier - mon erreur. J'utilise généralement stsadm car il se comporte de manière plus cohérente que l'interface graphique (ce qui m'interrompait lors de certaines opérations, etc.). – Mayo

+0

@mayo - semble quand je désactive les fonctionnalités et supprime le .wsp, cette ligne est toujours dans cette table. Existe-t-il un moyen d'identifier la fonctionnalité qui doit être désactivée? Il existe une colonne pour setuppath sous la forme 'Features \ MinimalPublishingLayouts \ PageLayouts \ mypage.aspx' mais elle a été désactivée. – 78lro

0

À moins que quelque chose ne se passe pas lorsque vous désactivez une fonctionnalité (exception non gérée dans votre événement FeatureDeactivated ou quelque chose de similaire), les fonctionnalités que vous désinstallez ne doivent pas laisser de trace.

Si vous vous retrouvez avec des fonctionnalités qui sont toujours suspendues sur votre site, je suggère d'utiliser SharePoint Manager. Vous serez en mesure de voir tout ce qui est installé sur votre Web App/Site Collection et supprimer les fonctionnalités que vous ne voulez pas. Tout cela est fait via le modèle d'objet SharePoint, ce qui signifie que vous ne supprimez jamais rien directement de la base de données, et l'outil fonctionne très bien.

+0

Donc, même pour les fichiers dans la bibliothèque de pages maîtres, il ne devrait pas laisser d'entrées dans la table AllDocs? Peut-être que cela aurait pu être un déploiement précédent de la fonctionnalité qui n'a pas pu être désactivée correctement. – 78lro

+0

@ Hugo - Je vais jeter un oeil le gestionnaire de sharepoint, je l'ai déjà utilisé mais pas pour cela. thx – 78lro

+0

J'ai passé du temps à regarder la propriété ignoreifalreadyexists sur l'élément file car je pensais que cela pourrait être le coupable - http://www.sharepointvoodoomagic.com/2009/01/ignoreifalreadyexists.html – 78lro

Questions connexes