在 C# 代码中使用 Sharepoint 365 现代体验获取运行时错误

Posted

技术标签:

【中文标题】在 C# 代码中使用 Sharepoint 365 现代体验获取运行时错误【英文标题】:Get runtime error with Sharepoint 365 modern experience in C# code 【发布时间】:2021-12-07 02:06:04 【问题描述】:

我正在尝试访问 SharePoint 网站中的列表,我正在使用具有现代体验的 Sharepoint 365。

我的问题是我上线超时错误

clientContext.ExecuteQuery();

我使用此链接作为参考: https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/complete-basic-operations-using-sharepoint-client-library-code#basic-operations-with-the-sharepoint-net-client-object-model

这是我的代码:

using (ClientContext clientContext = new ClientContext("https:siteurl"))

    SecureString passWord = new SecureString();

    foreach (char c in "mypwd".ToCharArray()) passWord.AppendChar(c);

    clientContext.Credentials = new SharePointOnlineCredentials("myuser", passWord);

    Web web = clientContext.Web;

    // Retrieve all lists from the server.
    // For each list, retrieve Title and Id.
    clientContext.Load(web.Lists,
                         lists => lists.Include(list => list.Title,
                                                list => list.Id));
           
    // Execute query.
    clientContext.ExecuteQuery();

    // Enumerate the web.Lists.
    foreach (List list in web.Lists)
    
        label1.Text = label1.Text + ", " + list.Title;
    

【问题讨论】:

这是一个大型数据集吗? 不,我有几个包含 2 个项目的列表 【参考方案1】:

在代码中添加clientContext.RequestTimeout = -1,下面的代码供大家参考。

using (ClientContext clientContext = new ClientContext("https:siteurl"))

    SecureString passWord = new SecureString();

    foreach (char c in "mypwd".ToCharArray()) passWord.AppendChar(c);

    clientContext.Credentials = new SharePointOnlineCredentials("myuser", passWord);   
    clientContext.RequestTimeout = -1;
    Web web = clientContext.Web;

    // Retrieve all lists from the server.
    // For each list, retrieve Title and Id.
    clientContext.Load(web.Lists,
                         lists => lists.Include(list => list.Title,
                                                list => list.Id));
           
    // Execute query.
    clientContext.ExecuteQuery();

    // Enumerate the web.Lists.
    foreach (List list in web.Lists)
    
        label1.Text = label1.Text + ", " + list.Title;
    

【讨论】:

以上是关于在 C# 代码中使用 Sharepoint 365 现代体验获取运行时错误的主要内容,如果未能解决你的问题,请参考以下文章

如何授权 .NET 5.0 / C# 应用程序在没有用户交互的情况下与 Microsoft 365 SharePoint Online 交互?

Office365 网站上的 Sharepoint Designer

O365(世纪互联)SharePoint 之使用Designer报错

使用 Power Automate 检查 Office 365 组中是不是存在 Teams/SharePoint 用户

在线授权 Office 365/Sharepoint

SharePoint Office365 Powershell Webpart AllItems.aspx