J'utilise ajax pour appeler un service Web qui met à jour une liste de points de partage.Erreur lors de la mise à jour de l'élément Sharepoint List, lorsqu'il est appelé depuis le service Web
Il fonctionne quand je l'appelle le code de tests unitaires, mais l'exécution du code dans un navigateur provoque une exception:
System.InvalidOperationException: Le fonctionnement est pas valide en raison de l'état actuel de l'objet. à Microsoft.SharePoint.WebControls.SPControl.SPWebEnsureSPControl (HttpContext contexte) à Microsoft.SharePoint.WebControls.SPControl.GetContextWeb (HttpContext contexte) à Microsoft.SharePoint.SPContext.get_Current() à Microsoft.SharePoint.SPListItem.AddOrUpdateItem (Boolean badd, Boolean bSystem, Boolean bPreserveItemVersion, Boolean bNoVersion, Boolean bMigration, Boolean bPublish, Boolean bCheckOut, Boolean bCheckin, guid newGuidOnAdd, Int32 & Ulid, objet & objAttachmentNames, objet & objAttachmentContents, booléens suppressAfterEvents) à Microsoft.SharePoint.SPListItem .UpdateInternal (booléen bSystem, bPreserveItemVersion booléenne, Guid newGuidOnAdd, bMigration booléenne, bPublish booléen, bNoVersion booléenne, bCheckOut booléen, Bo Olean bCheckin, booléennes suppressAfterEvents) à Microsoft.SharePoint.SPListItem.Update()
Mon code de mettre à jour l'élément de liste est:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(siteURL))
{
using (SPWeb web = site.OpenWeb(path))
{
SPList userProfile = web.Lists[userList];
SPQuery qry = new SPQuery
{
Query =
"<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" +
accountName +
"</Value></Eq></Where><ViewFields><FieldRef Name='ID' /><FieldRef Name='Title' /><FieldRef Name='LastUpdated' /><FieldRef Name='Reason' /></ViewFields>"
};
SPListItemCollection spListItemCollection = userProfile.GetItems(qry);
if (spListItemCollection.Count == 1)
{
//edit user
SPListItem item = spListItemCollection[0];
item["Updated"] = DateTime.Now;
item["Reason"] = updateReason;
item.Update();
}
}
}
});
erreurs sur item.Update Il();
Lorsque vous exécutez le test unitaire, est-il exécuté avec les mêmes informations d'identification de compte que le service Web? Je me demande si c'est un problème de sécurité. – CBono
Il utilise les mêmes informations d'identification pour les deux. –