2010-02-25 6 views
4

J'ai installé SharePoint 2010 sur une machine Windows Server 2008 R2 qui héberge également SQL Server 2008 R2. J'essaie de déployer une solution qui inclut des composants WebPart dans l'environnement 2010 qui fonctionne correctement dans MOSS 2007.SharePoint 2010 - Accès refusé pendant ApplyWebConfigModifications()

La fonctionnalité WebPart dispose d'un récepteur de fonctions qui met à jour le fichier web.config. Lorsque j'essaie d'activer la fonctionnalité via l'interface utilisateur de la collection de sites, je reçois un message de refus d'accès. Je suis connecté au serveur et dans SharePoint avec le compte de pool d'applications, qui est également membre du groupe d'administrateurs de domaine, du groupe d'administrateurs locaux et du groupe d'administration de batterie de serveurs SharePoint. Ce compte est également dbo sur SQL Server.

Cette même fonctionnalité est activée à l'aide de la commande stsadm.

J'ai creusé dans cette question longuement et voici ce que j'ai trouvé:

En regardant les ensembles Microsoft dans le réflecteur, mon erreur provient de la méthode SPWebApplication.ApplyWebConfigModifications(). Je peux voir les instructions de trace de SPWebConfigFileChanges.RemoveModificationsWebConfigXMLDocument et SPWebConfigFileChanges.ApplyModificationsWebConfigXMLDocument. La ligne suivante est une sauvegarde (str).

est inférieure à la sortie des journaux de SharePoint qui se rapportent à cette erreur:

Apply web config modifications to web app
5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
General 8grn Medium WebConfigModification: Applying web config modifications to web app in server tw-s1-m4400-007
5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 88gw Medium WebConfigModification: Applying web config modifications to file C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 887b Medium Removing web config node - Path configuration/system.web/httpModules Node name add[@name='JivePageController']
5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 887b Medium Removing web config node - Path configuration/system.web/httpHandlers Node name add[@path='ScriptResource.axd']
5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 887b Medium Removing web config node - Path configuration/runtime/*[local-name()="assemblyBinding" and namespace-uri()="urn:schemas-microsoft-com:asm.v1"] Node name [local-name()="dependentAssembly"][/@name="System.Web.Extensions.Design"] 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 887b Medium Removing web config node - Path configuration/runtime/*[local-name()="assemblyBinding" and namespace-uri()="urn:schemas-microsoft-com:asm.v1"] Node name [local-name()="dependentAssembly"][/@name="System.Web.Extensions"] 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 8gp8 Medium WebConfigModification: Adding web config node - Path - configuration/runtime/*[local-name()="assemblyBinding" and namespace-uri()="urn:schemas-microsoft-com:asm.v1"] Node name - [local-name()="dependentAssembly"][/@name="System.Web.Extensions"] Node value - in web.config file C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 8gp8 Medium WebConfigModification: Adding web config node - Path - configuration/runtime/*[local-name()="assemblyBinding" and namespace-uri()="urn:schemas-microsoft-com:asm.v1"] Node name - [local-name()="dependentAssembly"][/@name="System.Web.Extensions.Design"] Node value - in web.config file C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 8gp8 Medium WebConfigModification: Adding web config node - Path - configuration/system.web/httpHandlers Node name - add[@path='ScriptResource.axd'] Node value - in web.config file C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 8gp8 Medium WebConfigModification: Adding web config node - Path - configuration/system.web/httpModules Node name - add[@name='JivePageController'] Node value - in web.config file C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x15C4)
0x1444 SharePoint Foundation
Topology e5mb Medium WcfReceiveRequest: LocalAddress: ' http://tw-s1-m4400-007.jivedemo.local:32843/15702467ece1408f881abeabac3b5077/MetadataWebService.svc ' Channel: 'System.ServiceModel.Channels.ServiceChannel' Action: xxx MessageId: 'urn:uuid:4e859532-ed7f-4937-8b88-68d3af43d589' 9f403ede-2c94-490b-a05c-e169cc5fe58d

02/24/2010 16:05:41.10 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology f6kh High WebConfigModification: Save of web.config file C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config for applying modifications to web app SharePoint - 2008 failed. Error message - Access to the path 'C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config' is denied.
5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.10 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 8j2o High WebConfigModification: Changes not applied to web application SharePoint - 2008 with Url xxx
5a817a37-7bf6-4d26-be51-207369e38f5b

Toute aide serait appréciée!

+0

Pouvez-vous ajouter le code dans votre fonction qui modifie le fichier web.config? Il y a deux façons de faire le changement. Une technique le fait à travers un travail et l'autre le fait en faisant le changement dans le processus. – Jeff

+0

Voici les 2 lignes principales. Le reste du code est réparti sur un certain nombre de méthodes "helper". _webApplication.WebService.ApplyWebConfigModifications(); _webApplication.Update(); Pouvez-vous m'indiquer les «deux façons de faire le changement» que vous mentionnez? – user281254

Répondre

0

Essayez de changer la portée de la fonction pour WebApplication et activer à partir de Central Admin

+0

la fonctionnalité est l'ajout de WebParts. Je devrais séparer les modifications Web.config des parties Web associées pour le faire puisque ma fonction contient des modules. – user281254

1

Assurez-vous que l'identité de votre pool d'applications a un accès en lecture/écriture dans le répertoire contenant le web.config.

Assurez-vous également que l'identité de votre travail de minuteur SharePoint dispose d'un accès en lecture/écriture au répertoire qui contient le fichier web.config.

+0

Dans cet environnement de test, j'utilise le même compte pour tout et c'est aussi le compte avec lequel je suis connecté sur la machine. C'est un administrateur sur la machine, un administrateur de batterie dans SharePoint, un administrateur de collection de sites dans SharePoint. Et quand je lance la fonction STSADM -o activer en utilisant ce compte, cela fonctionne très bien. Il échoue seulement lorsque j'utilise l'interface utilisateur. J'espère que cela pourra aider! – user281254

0

C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config for applying modifications to web app SharePoint - 2008 failed. Error message - Access to the path 'C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config' is denied.

Vérifiez les autorisations de ce fichier et réglez-les de façon appropriée.

3

Vérifiez que le contrôle UAC (User Account Control) est activé et turn it off if this is a test/demo environment. L'autre option (et la meilleure option pour les environnements de production) est de cliquer avec le bouton droit de la souris sur le lien d'administration centrale et de choisir l'option "Exécuter en tant qu'administrateur".

J'ai été brûlé par cela pendant un petit moment et la raison en est à cause de la façon dont la vérification de sécurité est effectuée avant que le travail de déploiement de solution s'exécute. Si vous exécutez avec UAC activé alors cette vérification échouera toujours (voir la section Remarques sur MSDN pour system.security.principal.windowsprincipal).

+0

Je ne suis pas autorisé à ajouter un autre lien (nouvelle restriction utilisateur) mais le lien MSDN est http://msdn.microsoft.com/en-us/library/system.security.principal.windowsprincipal.aspx –

+0

(en remplaçant Tim qui nécessaire pour passer à d'autres problèmes) Ceci est une fonctionnalité portée à une collection de sites, donc je ne peux pas l'activer via l'administrateur central. Pour les grins, j'ai essayé d'exécuter IE sur le serveur SharePoint en faisant un administrateur runas. Sans surprise, lors de l'activation de la fonctionnalité, il échoue toujours. –

+0

Tim vient de me dire que si vous faites un administrateur runas pour exécuter SP Central Admin, vous obtenez des liens supplémentaires pour administrer les services. Très intéressant. Je ne vois pas de liens pour activer les fonctionnalités de la collection de sites, cependant :-(. –

0

Notre solution consistait à réorganiser notre architecture d'entités de manière à ce que nous disposions maintenant d'une fonctionnalité d'application Web, en plus de 2 fonctions sectorielles et de 2 fonctionnalités de collection de sites. Nous avons déplacé notre code qui traitait de WebConfigModifications de nos fonctionnalités de portée de collection de sites à notre nouvelle fonctionnalité de portée d'application Web.

C'était la façon dont cela aurait dû être fait depuis le début (et comment nous avons essayé de le faire il y a quelques temps), mais le programme d'installation de SharePoint ne supportait pas notre architecture de fonctionnalités. code essayant de traiter WebConfigModifications au niveau de la collection de sites.Cela a eu des effets secondaires approximatifs comme exiger que le compte qui a activé la fonctionnalité de collection de sites soit également un administrateur de batterie - et nous devions avoir du code intelligent pour ne pas appliquer ou supprimer nos paramètres plusieurs fois. Nous avons donc dû mettre à jour le programme d'installation de solution SharePoint pour cela - et le faire fonctionner dans SharePoint 2010. Il n'est pas encore publié, mais regardez http://sharepointinstaller.codeplex.com/ pour les versions qui prennent en charge ce scénario pour SharePoint 2007 et SharePoint 2010.