单线程调用Web Service时,请求10秒返回完毕;但多线程同时提交30个请求,返回时间会不断递增,好像被队列一个一个执行一样!
但是启动30个进程同时提交,全部都是10秒左右就完毕了。
而且多线程内都有重新实例了web service,为什么返回还会逐个返回呢?单进程,还是同一个会话?
对web service与多线程应用不多,希望各位大神解答排除下,谢谢。
谢谢各位回答,可能我描述的不太清楚,不过已经解决了,以前http请求也出现这个问题。
是由于:在Http协议中,规定了同个Http请求的并发连接数最大为2,
方法1:把System.Net.ServicePointManager.DefaultConnectionLimit=512(最好不要大于1024)
方法2:配置方式
<system.net>
<connectionManagement>
<add address="*" maxconnection="512" />
</connectionManagement>
</system.net>
请求10秒返回完毕;但多线程同时提交30个请求,返回时间会不断递增,好像被队列一个一个执行一样!
但是启动30个进程同时提交,全部都是10秒左右就完毕了。
麻烦你先解释一下这自相矛盾的提法是怎么回事再说其他的。
你不要同时提交 先提交几个 然后再批量
前面几个请求是有点慢的 (这个应该和提交程序的线程 进程 无关)
这个我用控制台测试过 前面几个慢 后面的 基本都差不多 再就是无法确定返回的先后顺序
贴核心代码,你的描述很不清晰。