做一个客户端的测试小程序测试web service的并发处理。开始用async task做,不管创建多少个task,用netstat看同时只有两个tcp连接。以为是async task的问题,改用BackgroundWorker和多线程都是同样的问题,经google得知原来是.NET默认一个客户端对同一个服务器地址同时只能建立2个TCP连接。在app.config里增加下面一段解决问题(不管用async task,BackgroundWorker还是多线程都一样):

    <system.net>
        <connectionManagement>
            <add address="*" maxconnection="20" />
        </connectionManagement>
    </system.net>