Domanda

Il codice qui sotto, è un tentativo di ottenere (scaricare) file da un SharePoint. Se provo questo sulla mia versione locale, funziona come un fascino.Posso selezionare tutti gli elementi nella libreria dei documenti.

Ci sono diversi metodi che ho provato, e potrei postarne alcuni di loro qui se vuoi.Posso scaricare file corrotti, ma anche quando il collegamento è sbagliato. Se provo questo sul teamsite in Office 365, ottengo un'eccezione che il mio collegamento è sbagliato.Ma mi riferisco allo stesso sito (invece di localhost / dev / im riferiti a http://mysite.com/ Teamsite / dev / ).Qualche idea di quale differenza può essere?Microsoft blocca qualcosa di così le connessioni esterne non sono consentiti?

  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");
        }
    }
.

Questo è il messaggio di eccezione:

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.
.

È stato utile?

Soluzione

Non è possibile connettersi al sito di SharePoint, distribuito su un altro computer come questo. Dovresti usare contesto client

Ad esempio:

    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());
    }
.

È possibile trovare altri esempi sul contesto client qui

.

c'è già un Esempio di download dei file da SharePoint tramite clientContext.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top