Freigeben über


SharePoint 2010 - Método SPWeb.GetSiteData comportandose de manera extraña.

Hola

Hace no mucho he tenido un caso bastante curioso referente al siguiente método SPWeb.GetSiteData(p) https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.getsitedata.aspx . Resulta que en el siguiente código no estaba generando la tabla esperada de items.            

try

{    //Código a mayores del objecto SPSiteDataQuery p                    

    DataTable dt = SPContext.Current.Site.RootWeb.GetSiteData(p);         

   //Código a mayores

}                        

catch (Exception e)

{

}

 El problema estaba en que este método necesita ser instanciado desde un objeto SPWEB explícito, por lo cual quedaría de la siguiente manera:

 try

  {   //Código a mayores del objecto SPSiteDataQuery p

     SPSite Siteh = SPContext.Current.Site;                             

     using (SPWeb Webh = Siteh.OpenWeb())

        {                        

        DataTable dt = Webh.GetSiteData(p);            

        //Código a mayores

         }

}                       

catch (Exception e) 

{

}

Esto es debido a que necesita el objeto SPWeb explícito cada vez que se tiene que calcular las estadisticas del sitio, no lo he comprobado con EE.UU., pero tiene pinta de ser por diseño.

Muchas Gracias.

Un Saludo

Héctor Calvarro Martín. SharePoint Dev. Microsoft Support Engineer for DEV EMEA