SharePoint的ClientContext中的服务器版本,站点,Web引发错误

时间:2016-09-09 07:31:47

标签: c# sharepoint

我是sharepoint的新手。我试图上传文件并将元数据添加到文件中。以下是我的代码。在声明ClientContext

时,我可以看到一些内部异常
  

例外: clientContext.ServerVersion引发类型 PropertyOrFieldNotInitializedException的异常

Site,Web也是如此。

using (ClientContext clientContext = new ClientContext(SPURL))
{
    //ClientContext clientContext = new ClientContext(SPURL);
    clientContext.Credentials = new System.Net.NetworkCredential(userName, password, domain);

    Web web = clientContext.Web;
    FileCreationInformation newFile = new FileCreationInformation();
    newFile.Content = System.IO.File.ReadAllBytes(PPTPath);
    newFile.Url = "F:\\log.txt";
    List docs = web.Lists.GetByTitle("Test");
    Microsoft.SharePoint.Client.File uploadFile = docs.RootFolder.Files.Add(newFile);
    clientContext.ExecuteQuery();

    using (FileStream fileStream =
                new FileStream(PPTPath, FileMode.Open))
        ClientOM.File.SaveBinaryDirect(clientContext,
        DocumentRepository + PPTfilename, fileStream, true);   
}

1 个答案:

答案 0 :(得分:0)

CSOM库希望您在调用ExecuteQuery()时告诉他们您要从SharePoint环境中查询的内容。 因此,您需要告诉clientcontext对象要加载的内容。 例如: Web web = clientContext.Web;后面应该跟clientContext.Load(web);

这是一个简单的例子。对于上传文件,您最好的选择是使用File.SaveBinaryDirect功能。可以找到有关如何使用它的示例elsewhere on stackoverflow