web-services sharepoint upload wss

web services - Subir archivo a SharePoint WSS 3.0 con WebRequest PUT



web-services upload (3)

¿Has intentado usar una T mayúscula? No es probable que el procesamiento del encabezado webdav de SharePoint distinga entre mayúsculas y minúsculas, pero el protocolo especifica una T. mayúscula. ¿Cuál es la respuesta? ¿Un código de error 412 o algo completamente diferente?

Oye, tengo este pequeño trozo de código, al igual que todas las otras versiones de este método de carga usando WSS WebServices. Sin embargo, tengo un problema importante: una vez que he cargado un archivo en mi lista de documentos y actualicé el elemento de la lista para escribir un comentario / descripción, el archivo está atascado allí. Lo que quiero decir es que este método no sobrescribirá el archivo una vez que lo haya subido. Nadie más parece haber publicado este problema todavía, entonces ... ¿alguien?

Tengo otra versión del método que usa un byte [] en lugar de un Stream .. mismo problema.

Nota: Desactivé la opción ''exigir que se comprueben los documentos antes de poder editarlos'' para la biblioteca. Sin embargo, no hay suerte ... Sin embargo, la biblioteca doc tiene las versiones activadas, con una versión principal que se crea para cada actualización.

private void UploadStream(string fullPath, Stream uploadStream) { WebRequest request = WebRequest.Create(fullPath); request.Credentials = CredentialCache.DefaultCredentials; // User must have ''Contributor'' access to the document library request.Method = "PUT"; request.Headers.Add("Overwrite", "t"); byte[] buffer = new byte[4096]; using (Stream stream = request.GetRequestStream()) { for (int i = uploadStream.Read(buffer, 0, buffer.Length); i > 0; i = uploadStream.Read(buffer, 0, buffer.Length)) { stream.Write(buffer, 0, i); } } WebResponse response = request.GetResponse(); // Upload the file response.Close(); }

Créditos originales a: http://geek.hubkey.com/2007/10/upload-file-to-sharepoint-document.html

EDITAR - hallazgo importante ... cuando lo llamo desde mi proyecto de prueba nUnit funciona bien. Parece que solo falla cuando lo llamo desde mi aplicación WCF (nUnit se ejecuta bajo la cuenta de usuario registrada, la aplicación WCF tiene un grupo de aplicaciones ejecutándose bajo ese mismo usuario, mi cuenta, que también tiene permisos válidos en SharePoint).

Nueces. "¿¡Ahora por dónde empezar ?!", reflexiono para mí.


¿Por qué no usar el servicio web inmediato de SharePoint, Lists.asmx? Lo encontrarás en

http: //SITEURL/___vti_bin/Lists.asmx

Editar , revisé el enlace y parece que llamas al servicio web de fábrica. Esto tiene que estar relacionado con las versiones entonces. ¿Puedes ver las diferentes versiones que existen en la biblioteca de documentos del archivo específico? ver si tal vez se agrega como una versión menor a través del servicio?


SOLUCIONADO - Encontré un pequeño error - el archivo se estaba creando en el lugar correcto, pero la ruta de actualización era incorrecta. Terminé encontrando una carpeta llena de archivos con muchas, muchas versiones nuevas ... ¡doh!