SharePoint 3.0 - Eccezione "Operation is not valid due to the current state of the object"

Può capitare di dover aggiornare tramite codice, degli Item su cui l’utente corrente non ha privilegi di scrittura. SharePoint 3.0 ci viene in aiuto con il metodo SPSecurity.RunWithElevatedPrivileges che permette di effettuare esattamente quello di cui abbiamo bisogno.

Tutto sembra facile, ma se proviamo ad eseguire questo codice:

 

SPSecurity.RunWithElevatedPrivileges(delegate()

{

      using (SPSite site = new SPSite(siteURL))

      {

            using (SPWeb web = site.OpenWeb())

            {

                  site.AllowUnsafeUpdates = true;

                  web.AllowUnsafeUpdates = true;

 

                  SPList list = web.Lists["Mia Lista"];

                  SPListItem item = list.GetItemById(2);

                  item["Titolo"] = "Nuovo titolo";

                  item.Update();

            }

      }

});

 

 

Otterremo la seguente eccezione: Operation is not valid due to the current state of the object.

 

Sembra che per qualche non meglio specificato motivo, non sia possibile chiamare il metodo Update della classe SPListItem all’interno di un blocco RunWithElevatedPrivileges.

Penso si tratti di un bug, comunque modificando un pochino il codice è possibile far funzionare il tutto:

 

SPWeb web = null;

try

{

      SPSecurity.RunWithElevatedPrivileges(delegate()

      {

            using (SPSite site = new SPSite(urlFolder))

            { web = site.OpenWeb(); }

      });

 

      web.AllowUnsafeUpdates = true;

 

      SPList list = web.Lists["Mia Lista"];

      SPListItem item = list.GetItemById(2);

      item["Titolo"] = "Nuovo titolo";

      item.Update();

}

finally

{

      if (web != null)

            web.Dispose();

}

 

Technorati Tags: ,

posted @ lunedì 7 gennaio 2008 03:35

Print

Comments on this entry:

# re: SharePoint 3.0 - Eccezione "Operation is not valid due to the current state of the object"

Left by Daniele Proietti at 07/01/2008 05:49
Gravatar
Anche il metodo SystemUpdate presenta lo stesso problema..... sono orientato sul bug ;-)

# re: SharePoint 3.0 - Eccezione "Operation is not valid due to the current state of the object"

Left by Massimo Prota at 07/01/2008 13:45
Gravatar
Grande Daniele, combattiamo i bugs e gli strani errori di questa piattaforma con questi posts!
Siamo tutti sullo stesso barcone, MOSS ninja coders :D
Comments have been closed on this topic.
«aprile»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011