我在多线程环境中调用Web服务。由于操作超时或请求不好,我的很多通话都会失败,但是如果以线性方式进行通话,则没有任何通话会失败,这意味着调用具有多个线程的webservice时会出现问题。经过大量的分析,我发现并发连接的限制导致了这些异常,所以我通过添加下面的代码来修复它。缺点增加ServicePointManager.DefaultConnectionLimit
ServicePointManager.DefaultConnectionLimit = 2 * _ThreadCount;
我不知道是增加这个限制的可能缺点。默认情况下,连接限制为2.如果有人知道任何缺点,请让我知道。
MSDN还指出,默认值为MaxValue的,但是当我调试我看到默认值为2 – Viru
@Viru: - 是的,它是默认设置为MaxValue的。你确定以前没有改变过吗? –
在我的应用程序或配置无论在哪里,我设置此值,但如果我正确地undertstand它,它是系统级配置,有可能是在machine.config中的配置,我没有检查....反正,我更感兴趣在寻找任何可能的弊端 – Viru