tutorial permisos niveles boundaries and sharepoint

permisos - Uso de SPSite desde la aplicación de 32 bits para acceder a SharePoint de 64 bits



sharepoint limits and boundaries (2)

No creo que esto sea un problema de 32/64 bits, ya que estoy en la misma situación en cuanto al desarrollo en 32 bits y la implementación en 64 bits. (En realidad, estamos ejecutando un WFE''S de 32 bits y 64 bits)

Dado que se está lanzando la excepción desde el constructor SPSite, investigaría más a fondo si la máquina en la que está ejecutando el código (el recuadro SP) realmente reconoce esa URL.

He creado un trabajo por lotes que se ejecuta en modo de 32 bits, ya que utiliza objetes COM de 32 bits, esta necesidad de conectarse a SharePoint para hacer actualizaciones a la lista. Funciona en mi entorno de desarrollo ya que está lleno de 32 bits. Pero en mi entorno de prueba y producción utilizamos SharePoint de 64 bits y esto es lo que obtengo de SPSite:

System.IO.FileNotFoundException: The Web application at http://<my sp host>/ could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application. at Microsoft.SharePoint.SPSite..ctor(SPFarm farm, Uri req...

esto es lo que hago

using (SPSite site = new SPSite(_url)) { using (SPWeb web = site.OpenWeb()) { try { SPList list = web.Lists[new Guid(_listID)]; SPListItem item = list.GetItemById(id); item[field] = value; item.SystemUpdate(false); } catch (Exception x) { log.Error(x); } } }


Simplemente necesita ejecutar su trabajo por lotes en un proceso de 64 bits. El problema es que SharePoint tiene muchos objetos COM bajo el capó que están compilados para 64 bits en su entorno de prueba y producción. Los objetos SPSite y SPWeb en realidad envuelven los objetos COM por lo que fallan en su proceso de 32 bits.

Una solución alternativa podría ser interactuar con SharePoint a través de sus servicios web en lugar del modelo de objetos.