2012-10-03 5 views
1

Le code ci-dessous, est une tentative d'obtenir (télécharger) des fichiers à partir d'un point de partage. Si j'essaye ceci sur ma version locale, cela fonctionne comme un charme. Je peux sélectionner tous les éléments de la bibliothèque de documents.SharePoint 365 agissant différemment que la version locale

Il y a plusieurs méthodes que j'ai essayées, et je pourrais les signaler ici si vous aimez. Je peux télécharger des fichiers corrompus, mais même si le lien est erroné. Si j'essaye ceci sur le TeamSite dans Office 365, j'obtiens une exception que mon lien est faux. Mais je fais référence au même site (au lieu de localhost/dev/im en référence à http://mysite.com/TeamSite/dev/). Toute idée de ce que la différence peut être? Est-ce que Microsoft bloque quelque chose, donc les connexions externes ne sont pas autorisées?

private void btnDownload_Click(object sender, EventArgs e) 
    { 
     if (comboBox1.Items.Count > 0 && comboBox1.SelectedIndex != -1) 
     { 
      SaveFileDialog dialog = new SaveFileDialog(); 
      dialog.ShowDialog(); 

      using (SPSite site = new SPSite("http://localhost/dev/")) 
      { 
       using (SPWeb web = site.OpenWeb()) 
       { 
        SPFolder myLibrary = web.Folders["Management"]; 

        foreach (SPFile file in myLibrary.Files) 
        { 
         if (file.Name == comboBox1.SelectedItem.ToString()) 
         { 
          byte[] bytes = file.OpenBinary(); 

          try 
          { 
           FileStream fs = new FileStream(dialog.FileName, FileMode.Create, FileAccess.ReadWrite); 
           BinaryWriter bw = new BinaryWriter(fs); 
           bw.Write(bytes); 
           bw.Close(); 
           MessageBox.Show("File downloaded to: " + dialog.FileName); 
          } 
          catch (Exception ex) 
          { 
           MessageBox.Show(ex.Message); 
          } 

         }        
        } 
       } 
      } 
     } 
     else 
     { 
      MessageBox.Show("Select file to download"); 
     } 
    } 

Voici le message d'exception:

The Web application at http://www.gtest.nl/TeamSite/ 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. 
+0

Microsoft ne supporte pas cela. Notre société essayait aussi d'obtenir quelque chose de similaire à cette solution. Nous avons dû arrêter le projet car la version actuelle d'Office365 ne prend pas en charge ce problème. –

Répondre

2

Vous ne pouvez pas se connecter au site sharepoint, déployé sur un autre ordinateur comme celui-ci. Vous devez utiliser Client Context

par exemple:

string siteUrl = "http://MyServer/sites/MySiteCollection"; 

    ClientContext clientContext = new ClientContext(siteUrl); 
    Web oWebsite = clientContext.Web; 
    ListCollection collList = oWebsite.Lists; 

    clientContext.Load(collList); 

    clientContext.ExecuteQuery(); 

    foreach (SP.List oList in collList) 
    { 
     Console.WriteLine("Title: {0} Created: {1}", oList.Title, oList.Created.ToString()); 
    } 

vous pouvez trouver plus d'exemples Contexte client here

Il y a un allready example de téléchargement de fichiers à partir sharepoint par ClientContext.

+0

OK va essayer maintenant, il ressemble à plusieurs "solutions" que j'ai déjà essayé et je me suis retrouvé avec rien. Merci d'avance. Je vais aller tester. – Rob

+0

C'est la réponse probable. Les API C# SharePoint peuvent uniquement contacter le serveur local, jamais un serveur distant. –

Questions connexes