Question

J'ai écrit un service WCF qui essaie de lire les éléments de la liste à partir d'une liste particulière dans SharePoint. À des fins de test, j'exécute le service WCF à l'aide du serveur de développement Visual Studio ASP.NET. Je passe l'ID du site au service Web et à partir du service Web, j'essaie d'ouvrir la liste et de lire les éléments. Mais quand j'essaie de lire les éléments, j'obtiens l'erreur suivante -

Cette opération ne peut être effectuée que sur un ordinateur joint à une ferme de serveurs par des utilisateurs qui ont des autorisations dans SQL Server pour lire dans la base de données de configuration. Pour connecter ce serveur à la ferme de serveurs, utilisez l'assistant de configuration des produits et technologies SharePoint, situé sur le menu Démarrer dans les outils administratifs.

Voici quelques faits -

  1. J'utilise SharePoint 2007 X64 dans Windows Server 2008 X64 et c'est une installation de serveur unique (pas de ferme)
  2. Je suis administrateur de la ferme
  3. Je suis un administrateur système (mais pas un administrateur de domaine)
  4. Je suis sysadmin pour le serveur SQL Server 2005 dans lequel SharePoint a ses bases de données
  5. Je suis l'administrateur de la collection de sites dans lequel la liste est présente
  6. J'ai ouvert Visual Studio 2010 en tant qu'administrateur
  7. Dans Task Manager, le processus ASP.NET Development Server est en cours d'exécution sous mon compte

Je n'ai aucune idée de la raison pour laquelle j'obtiens cette erreur. Des idées?

Était-ce utile?

La solution 3

Okie. J'ai trouvé le problème. Il est lié au même problème auquel je suis confronté depuis que je suis passé au développement x64 dans SharePoint 2007. Lorsque j'ai déployé le service WCF à IIS, tout a bien fonctionné.

En utilisant Visual Studio 2010 (quelle que soit ma plate-forme cible de mon projet), je n'ai jamais pu accéder au contenu SharePoint via une application de console simple ou une application Web ASP.NET simple. J'ai clairement compris que le problème est avec les trucs x86 x64 et je n'ai pas pu le résoudre jusqu'à présent. Je suis hanté par ça depuis si longtemps maintenant.

Si vous avez des commentaires sur cette réponse, veuillez le poster.

Vieille réf - Exception FileNotFound lors de l'ouverture d'un objet SPSite - x64

Autres conseils

Le service WCF est-il exécuté sur l'ordinateur SharePoint? Je parie que vous essayez d'utiliser le modèle d'objet SharePoint Outsite la boîte SharePoint.

Si vous souhaitez accéder à distance aux données SharePoint, dans un service WCF par vous-même, ou en fait tout autre programme, vous devrez utiliser le service Web Lists.AmmX pour récupérer vos données à partir de SharePoint.

En fait, dans votre WCF, vous devrez agir en tant que client des services SP

modifier] mon pari était faux :) Voici une autre chose à vérifier

Jetez également un coup d'œil dans votre projet VS. Configurez votre plate-forme cible sur "anycpu" ou "x64" pour vous assurer que le programme utilisera les assemblages et clés de registre corrects.

Le modèle d'objet essaiera d'ouvrir la touche Reg sous HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node nœud si vous traitez 32 bits, au lieu de HKEY_LOCAL_MACHINE\SOFTWARE où réside la configuration SharePoint

Essayez de vérifier votre identité de pool d'application SharePoint. Si vous, par exemple, essayez d'éviter vos privilèges en utilisant RunwithelatedPrivilegies dans votre service et que l'identité du pool d'applications n'a pas obligé d'autorisations, vous obtiendrez un tel message.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top