加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

webservice 多线程

发布时间:2020-12-16 22:57:10 所属栏目:安全 来源:网络整理
导读:同事在做多线程访问webservice的时候,发现总是很慢,平均速度比单线程访问要慢得多,后来,用了多进程去访问,结果就好多了 ? 后来上网查了一下,有个HTTP双连接限制的情况,原文如下 HTTP ? 双连接限制? HTTP ? 规范表明,一个 ? HTTP ? 客户端与任一服务器最多可

同事在做多线程访问webservice的时候,发现总是很慢,平均速度比单线程访问要慢得多,后来,用了多进程去访问,结果就好多了

?

后来上网查了一下,有个HTTP双连接限制的情况,原文如下

HTTP ? 双连接限制?
HTTP ? 规范表明,一个 ? HTTP ? 客户端与任一服务器最多可以同时建立两个 ? TCP ? 连接。这可以防止单个浏览器在浏览某个页面(例如,具有 ? 120 ? 个嵌入的缩略图)时,由于连接请求过多而使服务器负载过重。此时,浏览器将仅创建 ? 2 ? 个连接,然后通过这两个管道开始发送 ? 120 ? 个 ? HTTP ? 请求,而不是创建 ? 120 ? 个 ? TCP ? 连接并通过每个连接来发送 ? HTTP ? 请求。对于中间层,此方法的问题在于,中间层可能会有 ? 50 ? 个同时请求连接的用户。如果不得不为每个用户进行一次 ? MapPoint ? .NET ? Web ? 服务调用,将会有 ? 48 ? 个用户等待两个管道中的一个空闲下来。?

maxconnections?
连接到 ? Web ? 资源的默认双连接限制可以通过一个名为 ? connectionManagement ? 的配置元素来控制。connectionManagement ? 设置允许您添加要让其采用非默认连接限制的站点的名称。可以将以下内容添加到典型的 ? Web.config ? 文件中,将您连接的所有服务器的连接限制默认值增加到 ? 40。?

<configuration>?
? ? <system.net>?
? ? ? ? <connectionManagement>?
? ? ? ? ? ? <add ? address= "* " ? maxconnection= "40 " ? />?
? ? ? ? </connectionManagement>?
? ? </system.net>?

? ? <system.web>?
? ? ? ? ? ...?
应当注意的是,对本地计算机的连接数量从来都没有限制,因此,如果是连接到本地主机,则此设置无效。

我想如果一个进程为一个HTTP客户端的话,那么你在这个进程里面开多个线程进行webservice访问时,也是同时并发2个

然后做了测试,多线程返回结果果然是2个2个往外蹦?

然后就加了

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

就好了

这里说一些细节,原来配制文件也有顺序,我把上面的配制放在配制文件的顶部就会报错

adress 的格式 是?http://192.168.0.2

后面加个/都会报错

另外,做测试的机子是XP,IIS的最大连接数为10个,所以只能开10个线程

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读