从asp.net Web应用程序连接到Office 365 Sharepoint时出现“操作已超时”错误
我试图找到答案并实施以下解决方案:
How to connect to SharePoint on Office 365 with CSOM from C#?
也有一些博客建议进行异步查询,这不会引发错误,但不会给出任何结果。 还尝试在没有任何帮助的情况下设置超时属性。
下面是我的代码:
SharePointOnlineCredentials networkCredential = new
SharePointOnlineCredentials(SharePointUser, SharePointPassword);
Context = new ClientContext(SharePointURL);
Context.Credentials = networkCredential;
Web = Context.Web;
Context.Load(Web);
Context.ExecuteQuery();`
奇怪的是,我能够使用控制台应用程序进行连接并获取数据,但是我需要在Web应用程序中使其正常工作。
答案 0 :(得分:1)
经过大量搜索,我意识到我们需要代理才能连接到Sharepoint Online,并实现了以下代码来实现
clientContext.ExecutingWebRequest + =(s,e)=> { e.WebRequestExecutor.WebRequest.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials; };
答案 1 :(得分:0)
在代码中添加clientContext.RequestTimeout = -1,下面的代码供您参考。
string siteUrl = "https://tenant.sharepoint.com/sites/lz";
string userName = "lz@tenant.onmicrosoft.com";
string password = "xxx";
var securePassword = new SecureString();
foreach (char c in password.ToCharArray()) securePassword.AppendChar(c);
using (ClientContext clientContext = new ClientContext(siteUrl))
{
clientContext.Credentials = new SharePointOnlineCredentials(userName, securePassword);
clientContext.RequestTimeout = -1;
var web = clientContext.Web;
clientContext.Load(web);
clientContext.ExecuteQuery();
}