过Web方式访问联通L1接口。
单人定位20-30秒左右,多人速度明显变慢,100人 1300秒左右。
原来以为联通处理能力达不到多个请求并发,使用多线程延迟处理,每半秒发一个。效果不明显。后来使用TrafficAnalyzer分析连接数据的时候发现,并不是想象的建立了100个请求。而只有两个请求。这个地方走了弯路,其实可以使用性能记数器中的WebService\Current Connections 来查看的。
知道原因就好办了,在老桂协助下,查到了解决办法,修改配置文件

其中,connectionManagement节点负责指定客户端与某一网络主机之间所能建立的最高连接数量。它在Machine.config文件中的默认取值就是2。我们完全可以在应用程序级的配置文件中对这一限额做出更改。address属性表明该连接限额针对的是哪一个网络地址,*表明所有的网络主机;如果写成address="www.qqdao.org"就表明后面的maxconnection只适用于对qqdao的访问。
好了,现在就可以根据自己的需要来更改配置了。如果你把maxconnection的取值改成了1000,那么你的测试应用程序与服务器之间所能建立的最高连接数量就是测试用应用程序域的数量 * 1000  

经过修改后的程序定位100人只需要110秒左右,圆满完成设计需求!

另外网上还有几种方法,提供出来,大家可以看看思路
方法二 使用AppDomain
在.NET中,一个AppDomain就被视为网络连接中的一个客户端,因此如果希望用一个测试应用程序模拟多个客户端,那么只须创建多个AppDomain即可。需要注意的是,对于每一个AppDomain,最高2个的连接限额仍然存在,不同之处只是我们可以使用一个测试应用程序发送超过2个的并发请求了(现在为了模拟1000个并发量就不需要找500台测试机器了)。请看下面的代码:
AppDomain appDomain = AppDomain.CreateDomain("");
appDomain.ExecuteAssembly(@"TestClient.exe");
AppDomain.Unload(appDomain);
方法三:
ServicePointManager.DefaultConnectionLimit = 1000;
方法四:
protected override WebRequest GetWebRequest(Uri uri) {
HttpWebRequest req = (HttpWebRequest)base.GetWebRequest(uri);
ServicePoint currentServicePoint = req.ServicePoint;
req.ConnectionLimit = 1000;
return req;
}

01-16 00:11