【问题标题】:Server Version, Site, Web in ClientContext of SharePoint throws errorSharePoint 的 ClientContext 中的服务器版本、站点、Web 引发错误
【发布时间】:2017-01-17 06:50:34
【问题描述】:

我是 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);   
}

【问题讨论】:

    标签: c# sharepoint


    【解决方案1】:

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

    这是一个简单的例子。对于上传文件,最好的办法是使用File.SaveBinaryDirect 函数。可以在elsewhere on stackoverflow找到如何使用它的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      相关资源
      最近更新 更多