首页 新闻 会员 周边 捐助

这个问题一直想不通

0
悬赏园豆:50 [已解决问题] 解决于 2017-06-16 15:03

单线程调用Web Service时,请求10秒返回完毕;但多线程同时提交30个请求,返回时间会不断递增,好像被队列一个一个执行一样!
但是启动30个进程同时提交,全部都是10秒左右就完毕了。
而且多线程内都有重新实例了web service,为什么返回还会逐个返回呢?单进程,还是同一个会话?
对web service与多线程应用不多,希望各位大神解答排除下,谢谢。

IT小猪的主页 IT小猪 | 初学一级 | 园豆:77
提问于:2017-06-16 10:51
< >
分享
最佳答案
1

谢谢各位回答,可能我描述的不太清楚,不过已经解决了,以前http请求也出现这个问题。

是由于:在Http协议中,规定了同个Http请求的并发连接数最大为2,

方法1:把System.Net.ServicePointManager.DefaultConnectionLimit=512(最好不要大于1024)

方法2:配置方式

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

IT小猪 | 初学一级 |园豆:77 | 2017-06-16 15:00
其他回答(3)
0

请求10秒返回完毕;但多线程同时提交30个请求,返回时间会不断递增,好像被队列一个一个执行一样!
但是启动30个进程同时提交,全部都是10秒左右就完毕了。

麻烦你先解释一下这自相矛盾的提法是怎么回事再说其他的。

收获园豆:10
爱编程的大叔 | 园豆:30844 (高人七级) | 2017-06-16 11:22
0

你不要同时提交 先提交几个 然后再批量 

前面几个请求是有点慢的 (这个应该和提交程序的线程 进程 无关)

 

这个我用控制台测试过 前面几个慢 后面的 基本都差不多 再就是无法确定返回的先后顺序

收获园豆:30
小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2017-06-16 12:14
0

贴核心代码,你的描述很不清晰。

收获园豆:10
幻天芒 | 园豆:37205 (高人七级) | 2017-06-16 12:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册