IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Sharepoint .NET Discussion :

Ajout term dans termstore via web service sur webapp anonyme


Sujet :

Développement Sharepoint .NET

  1. #1
    Membre habitué
    Homme Profil pro
    SharePoint
    Inscrit en
    Mai 2011
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : SharePoint
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 127
    Points : 156
    Points
    156
    Par défaut Ajout term dans termstore via web service sur webapp anonyme
    Bonjour à tous,

    Je suis en train de développer un web service qui insèrera de nouveaux termes dans le termstore.
    Le web service se trouve sur une zone en anonyme de mon site SharePoint. Lors de l'appel au webservice, je passe un loigin. Chose étrange, c'est que ça a fonctionné plusieurs fois, mais là, plus rien ne fonctionne et la config de mes sites n'a pas changé entre temps.

    Au moment de créer un nouveau terme, j'ai une erreur qui apparait : "Value cannot be null". Parfois, le terme se créé quand même.

    J'ai déjà regardé ce topic : http://www.developpez.net/forums/d13...r-web-service/ mais ça ne m'a pas aidé.

    Voici l'erreur complète :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Value cannot be null.
    at Microsoft.SharePoint.Utilities.SPUtility.FormatAccountName(String provider, String user)
    at Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager.GetUserIdentifierEncodedClaim(IIdentity identity)
    at Microsoft.SharePoint.Taxonomy.Internal.CommonUtilities.GetCurrentUserName()
    at Microsoft.SharePoint.Taxonomy.TaxonomySession.get_CurrentUserName()
    at Microsoft.SharePoint.Taxonomy.TermSetItem.CreateTerm(String name, Int32 lcid, Guid newTermId)
    at CoE.SP.DM.EXECTRTConnector.TermStoreManager.<>c__DisplayClass9.<CreateTerm>b__5()
    at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass4.<RunWithElevatedPrivileges>b__2()
    at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)
    at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)
    at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)
    at MaMethodeAMoi
    L'accès anonyme au site iis est activé avec le compte de service du pool d'application.

    Le truc, c'est qu'il arrive bien à me récupérer le termstore, les termsets, mais au moment de la création d'un terme, là ça plante, tout le reste fonctionne.

    Any idea?

    Merci d'avance

    James

  2. #2
    Membre habitué
    Homme Profil pro
    SharePoint
    Inscrit en
    Mai 2011
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : SharePoint
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 127
    Points : 156
    Points
    156
    Par défaut
    En fait, mon erreur était la suivante.

    J'ai créé une méthode Create_Term à laquelle j'envoyais la connexion au termstore, le terme parent où sera créé le terme et le terme à créer.

    Dans cette méthode, je rappelais de nouveau un terme parent au lieu d'utiliser celui que je passais en paramètre, et du coup, ça ne fonctionnait pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    public string AddMyTermInMyTermStore(string sConnection,string groupValue,string termSetValue,MyTerm term,string idAffaire)
    {
    	TermStore store = null;
    	TermSet parentTerm = null;
    	SPSecurity.RunWithElevatedPrivileges(delegate()
    	{
    		store = GetTermStore(sConnection);
     
    		parentTerm = store.Groups["MyGroup"].TermSets["MyTermSet"];
    		string sMessage = CreateTerm(sConnection, parentTerm, term);
    		...
    	});
    }
     
     
    private static string CreateTerm(string sConnection, TermSet termSet, MyTerm oTerm)
    {
    	Term term = null;
     
    	TermStore store = GetTermStore(sConnection);
    	Group oGroup = store.Groups["MyGroup"];
    	TermSet oTermSet = oGroup.TermSets["MyTermSet"];
    	//Ici, au lieu de prendre termSet, je prenais oTermSet, et je sais pas pourquoi, mais ça passait pas
    	termSet.CreateTerm(oTerm.sLabel, 1033, oGuid);
    	oTermSet.TermStore.CommitAll();
    	...
    }
    Tout ça avec des try catch et des logs

    Du coup, ça marche!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Problème atteinte de ma BD via web services WCF Hébergé dans un service windows
    Par floryndas dans le forum Services Web
    Réponses: 1
    Dernier message: 18/11/2013, 11h48
  2. Importer via web service des infos dans access
    Par Sayrus dans le forum Access
    Réponses: 4
    Dernier message: 22/09/2013, 09h23
  3. Réponses: 0
    Dernier message: 29/07/2013, 13h19
  4. Ajouter le web service sur une application cliente
    Par soso78 dans le forum Services Web
    Réponses: 7
    Dernier message: 18/03/2008, 11h59
  5. Réponses: 2
    Dernier message: 15/06/2005, 23h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo