【发布时间】:2019-08-07 19:31:10
【问题描述】:
我正在尝试通过在 C# 中查询数据来使用 Microsoft Project OData。我遇到性能问题,每个查询延迟大约 1 秒。我正在尝试使用该方法一次查询 2 条信息:
public static async Task<string> ReadXml(string url)
{
var request = (HttpWebRequest)WebRequest.Create(url);
request.Credentials = Credentials; // SharePointOnlineCredentials
request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f");
using (var response = (HttpWebResponse)await request.GetResponseAsync())
using (var stream = response.GetResponseStream())
using (var reader = new System.IO.StreamReader(stream))
{
var xml = await reader.ReadToEndAsync();
return xml;
}
}
如果我调用它并且总是等待它结束后再调用它,它工作正常,但如果我一次调用它多次,我永远不会收到来自 WebRequest 的任何响应:
// just an example. I usually put a condition to filter for the tasks of a single project
var query1 = ReadXml(@"https://something.sharepoint.com/sites/pwa/_api/ProjectData/Projects");
var query2 = ReadXml(@"https://something.sharepoint.com/sites/pwa/_api/ProjectData/Tasks");
Task.WaitAll(query1, query2);
如果我“等待”第一个,然后执行第二个,它可以正常工作,但不能使用上面的代码。这是假设项目中有
谢谢,
【问题讨论】:
标签: c# sharepoint sharepoint-online project-online