网站集中的2个SharePoint网站以不同方式响应相同的代码

时间:2015-01-23 18:16:25

标签: c# sharepoint sharepoint-2010

我正在使用ac#app从SharePoint 2010目录下载文件(我认为文件列表是sharepoint的正确术语,但我只选择了它并且不是100%确定。可以确认一下我有正确的术语?)

我有以下代码,适用于使用Microsoft.Sharepoint.Client的一个网站:

ClientContext context = new ClientContext(sourcePath.Site);
Web web = context.Web;
Folder spfolder = web.GetFolderByServerRelativeUrl(sourcePath.Folder);
FileCollection files = spfolder.Files;

context.Load(context.Web);
context.Load(spfolder);
context.Load(files);
context.ExecuteQuery();

foreach (File file in files)
{
    destfile = System.IO.Path.Combine(move.FileDest, file.Name);
    FileInformation f = File.OpenBinaryDirect(context, file.ServerRelativeUrl);

    using (var fileStream = new System.IO.FileStream(destfile, System.IO.FileMode.Create))
    {
        f.Stream.CopyTo(fileStream);
    }
}

问题是,在网站1上(http://server/sites/department1/site1files显示枚举中的文件并将其复制得很好。站点二((http://server/sites/department2/site2)文件枚举为空(并且因为它的空文件没有下载)

奇怪的部分是当我查看spfolder站点2时ItemCount是正确的(5,一个子文件夹和4个文件)所以我不确定发生了什么。

对于权限,我只在代码工作的网站上阅读,而在代码无法运行的网站2上只有完全控制权。

另外一个开发人员向我展示了UNC路径到sharepoint目录(\\site\folder),该目录有效,但比CSOM访问慢得多。我仍然希望让SharePoint代码正常工作。

编辑:我的术语略有偏差,它们不是不同的网站,而是同一网站集中的2个不同网站

1 个答案:

答案 0 :(得分:1)

你能为这两个站点提供sourcePath.Site和sourcePath.Folder值吗?

由于您具有完全访问权限,因此错误的权限不足(缺少浏览目录)。我想问题是一个站点在自己的域上,而另一个站点在站点/ SiteName中。但这只是猜测。

确保sourcePath.Folder的格式如下:

/[web]/[libraryName]/[folder]

[libraryName]/[folder]