我需要从web服务获取大量xml数据。C# - 爬行XML RESTful web服务
我送使用任务异步请求,这样的片段
LimitedConcurrencyLevelTaskScheduler lcts = new LimitedConcurrencyLevelTaskScheduler(10);
TaskFactory factory = new TaskFactory(lcts);
List<Task> tasks = new List<Task>();
...
tasks.Add(factory.StartNew(() => GetRecords(country, names)));
...
Task.WaitAll(tasks.ToArray());
的Web服务有很多工作在后台等了大量请求,在超时去还是我收到一般错误从WebService做。
我想解决这个问题首先调整LimitedConcurrencyLevelTaskScheduler的数量。
某些XML的大小为2Mb,所以我使用XmlReader读取流,并使用XmlNode node = new XmlDocument().ReadNode(reader);
来获取所需的数据,但有时程序崩溃或死循环(我认为原因是不正确的xml响应web服务)。
我认为直接从整个响应中创建XDoc会更糟糕。
你能给我一个可能的可靠解决方案吗?
感谢提前:)
它是asmx还是WCF Web服务? –
REST风格的远程web服务,不知道技术:) – JoinZ
那么你想如何提高它的性能?因为如果您从Web服务接收到超时错误,那么客户端可以做的事情就不多了。除了让你的等待时间更长。 –