martes, 25 de noviembre de 2014

The request uses too many resources–CSOM

Al tratar de insertar un item en una lista de Sharepoint 2013, me lanzaba el error: The request uses too many resources

{Microsoft.SharePoint.Client.ServerException: The request uses too many resources.
   at Microsoft.SharePoint.Client.ClientRequest.ProcessResponseStream(Stream responseStream)
   at Microsoft.SharePoint.Client.ClientRequest.ProcessResponse()
   at Microsoft.SharePoint.Client.ClientRequest.ExecuteQueryToServer(ChunkStringBuilder sb)
   at Microsoft.SharePoint.Client.ClientRequest.ExecuteQuery()
   at Microsoft.SharePoint.Client.ClientRuntimeContext.ExecuteQuery()
   at Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()

hrresult --> –2146233088

Esto se debe a que Sharepoint setea el número máximo de object-paths que pueden ser usados en un request a 256. Un “Object-Path” trackea cómo un objeto cliente es creado en la clase “ClientRuntimeContext”, de esta manera el objeto puede crearse en el server. Cada SP-Object (por ejemplo un site) genera un object-path-object en el request. Es decir, en palabras simples setea un límite de 256 objetos en una llamada ExecuteQueryAsync.

Para solucionarlo, puedo hacer dos cosas: reducir los object-paths en el request, por ejemplo dividiendo la consulta en consultas más pequeñas o cambiando la propiedad maxObjectPaths.

$webApp = Get-SPWebApplication "htt://ur_webapplication"
$webApp.ClientCallableSettings.MaxObjectPaths = 5000
$webApp.Update()

No hay comentarios:

Publicar un comentario