2011-04-21 10 views
5

Recientemente me actualicé de Sharepoint 2007 a 2010. Tengo un servicio de Windows que inserta pdfs en sharepoint. Funciona muy bien en 2007. Cuando emigré a 2010, empecé a recibir el siguiente error intermitente:<nativehr> 0x80070002</nativehr> en Sharepoint 2010

<nativehr>0x80070002</nativehr> 

at Microsoft.SharePoint.Library.SPRequestInternalClass.GetMetadataForUrl(String bstrUrl, Int32 METADATAFLAGS, Guid& pgListId, Int32& plItemId, Int32& plType, Object& pvarFileOrFolder) at 

Microsoft.SharePoint.Library.SPRequest.GetMetadataForUrl(String bstrUrl, Int32 METADATAFLAGS, Guid& pgListId, Int32& plItemId, Int32& plType, Object& pvarFileOrFolder) at Microsoft.SharePoint.SPWeb.GetList(String strUrl) 

Aquí está la línea de código:

SPList parentList = web.GetList(url); 

Lo que es raro, es que esto sólo de vez en cuando falla De hecho, he completado esta línea de un bucle, y si falla, espero un poco, y luego trato de obtener la lista nuevamente. Por lo general, después de algunos intentos, GetList tendrá éxito.

Como no se puede duplicar fácilmente, estoy buscando pistas que pueda rastrear.

Desde las búsquedas de Google, la solución "recomendada" es cambiar cualquier llamada .GetList (...) a SPWeb.Lists [".."];

Pero, llegué lejos de que, debido a la exitosa Potencia en 2007 (.GetList (...) tiene mejor Potencia de SPWeb.Lists [ "..."])

¿Alguna sugerencia?

Gracias!
de Dave

+0

¿Ha intentado web.Lists.TryGetList()? http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistcollection.trygetlist(v=office.14).aspx – Alexey

Respuesta

0

Tal vez usted podría entender mejor el error si primero se recuperó un SPFolder o SPFile relacionada con la URL en cuestión. Compruebe .GetFile (...). Existe y .GetFolder (...). Existe. También puede obtener la propiedad ParentList por lo tanto.

0

SPWeb.GetList El método sin duda provocará un error si la lista no está en el sitio. El método está diseñado así. Ya está documentado en msdn.

Si no está seguro de que la lista esté allí o no; use Webobject.List[ListName] para evitar excepciones.

Usted puede comprobar mi blog SharePoint Codes de código de ejemplo

Creo que esta es la respuesta tarde, pero espero que ayude a otros en el futuro.

+1

SPWeb.GetList() opera en la URL, mientras que SPWeb.Lists [] colección utiliza nombres para mostrar, por lo que no ofrecen la misma funcionalidad. Además, SPWeb.List [] arrojará una excepción si intenta indexar un elemento que no existe en la colección. –

0

Lo resolvió exactamente el mismo error en SPWeb.GetList(reletiveUrl) con el error arrojado en el método GetMetadataForUrl en SharePoint 2010:

  • reinicio IIS
  • reinicio SPTimerV4 (SharePoint 2010 Timer)
  • reinicio SPAdminV4 (SharePoint 2010 Administration)
Cuestiones relacionadas