我正在尝试编写尽可能快速可靠地导入大量数据的代码。使用线程,我已经能够加快我在本地机器上编写的导入代码的速度,但是当我在远程服务器上运行它时,它似乎有一些 WCF 问题......
我有两个 WCF 服务实现:Service1 和 Service2。
基本上这是工作流程:
Parallel.ForEach(objectData.Tables[0].Rows.Cast<DataRow>(), dataRow =>
{
...
Service1.ImportObjectFirstPart(ObjectToEnter);
...
Service2.ImportObjectSecondPart(ObjectToEnter);
}
Service1 调用大约需要 3 秒,service2 需要大约 7 秒,无论是远程还是本地。然而,在我的本地机器上,对 service2 的调用在大约 20 次 service1 调用后开始。在服务器上,几乎每个 service1 调用都在第一个 service2 调用开始之前完成。(这两个服务都实现为 PerCall)。
调用服务的代码按预期使用 99% 的 CPU 一段时间,然后慢到爬行,然后我必须自己退出它。知道可能出了什么问题吗?
谢谢,