SharePoint 365 Действуя разные, чем локальная версия
Вопрос
Код ниже, представляет собой попытку получить (загрузку) файлы из SharePoint. Если я попробую это на моей локальной версии, это работает как очарование.Я могу выбрать все элементы в библиотеке документов.
Есть несколько методов, которые я пробовал, и я мог бы опубликовать некоторые из них здесь, если хотите.Я могу скачать коррумпированные файлы, но даже когда ссылка неверна. Если я попробую это в команде в офисе 365, я получаю исключение, что моя ссылка неверна.Но я имею в виду тот же сайт (вместо localhost / dev / im ссылаясь на ссылку http://mysite.com/ Teamsite / dev / ).Любая идея, какая разница может быть?Microsoft блокирует что-то, поэтому внешние соединения не допускаются?
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");
}
}
.
Это сообщение исключения:
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.
. Решение
Вы не можете подключиться к сайту SharePoint, развернутым на другом компьютере, как это. Вы должны использовать Клиентский контекст
Например:
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());
}
.
Вы можете найти больше примеров на контексте клиента здесь
.Есть AllReady a an Пример загрузки файла из SharePoint через ClientContext.