none
Conexion con Webservices List y Copy RRS feed

  • Pregunta

  • Tengo una maquina de desarrollo con xp y visual studio 2010. Obviamente no tengo instalacion local de sharepoint.

    Mi sharepoint esta en un servidor, asi que para acceder a el desde aplicaciones c# solo puedo utilizar los webservices.

    Para manipular lar listas utilizo el webservice List y para copiar archivos desde mi "File system" a mi sitio sharepoint utilizo el webservice "Copy".

    Añado las referencias de servicio Web, las veo, puedo crearlas, asigno las credenciales con el método "basic" o "Negotiate" .... pero el método CopyObject.CopyIntoItems me devuelve "error 401 - no autorizado".

    El código es consecuencia de mucho "trasteo, prueba y error"", asi que no le hagais mucho caso, pero basicamente lo que hago es Conectarme al servicio Copy, identificarme con Credentials y enviar un fichero del mi File system local

    El usuario y contraseña son los mismos con los que accedo via sharepoint designer y son del propietario del sitio (que soy yo).

     

    Alguien puede darme alguna pista ?.

    Muchas gracias

    Código del método

    =================================================================================

    public static void EnviaFichero(string Biblioteca, string NombreDelFichero)

    {

     

    ReferenciaWebCopy.

     

    CopyResult[] result = { new ReferenciaWebCopy.CopyResult()};

     

     

    try

    {

     

     

    byte[] myBinary = File.ReadAllBytes(NombreDelFichero);

     

     

    string UrlFuente = NombreDelFichero;

    string UrlDestino = @"MiURL" + Biblioteca + @"/" + NombreDelFichero;

     

     

    string[] UrlsDestino = { UrlDestino };

     

    System.Net.

     

    CredentialCache cache = new System.Net.CredentialCache();

    cache.Add(

     

    new Uri(UrlDestino), "basic", new System.Net.NetworkCredential( "MiUsuario", "MiPassword" , "MiDominio"));

     

     

    var CopyObject = new Copy { Url = "MiUrl/_vti_bin/copy.asmx" };

    CopyObject.Credentials = cache;

     

     

     

    var resultTest = new ReferenciaWebCopy.CopyResult();

    result[0] = resultTest;

    CopyObject.CopyIntoItems(UrlFuente, UrlsDestino ,

     

    null, myBinary, out result);

    }

     

     

    catch (Exception e)

    {

     

     

    MessageBox.Show(e.Message);

     

     

    if (result[0].ErrorMessage == null)

    {

     

     

    MessageBox.Show("Copia completada.\r\n" + "Destino: " + result[0].DestinationUrl + "\r\nError: " + result[0].ErrorMessage + "\r\n Codigo: " + result[0].ErrorCode);

    }

     

     

    else

    {

     

     

    MessageBox.Show("Copia fallida.\r\nError: " + result[0].ErrorMessage + "\r\n Codigo: " + result[0].ErrorCode);

    }

    }

    }

     

     

    • Cambiado VladPoint martes, 8 de junio de 2010 2:37 Tema de desarrollo (De:SharePoint: Productos y Tecnologías)
    miércoles, 2 de junio de 2010 12:05