Web服务 – Delphi SOAP Client不能保留2个以上的并发请求.怎么
发布时间:2020-12-14 18:36:01 所属栏目:资源 来源:网络整理
导读:我有一个多用户COM应用程序,需要在SOAP WebServices上发出多个请求.每个SOAP请求可能持续10到60秒(这不在我的控制之下).问题是,我永远不能同时发出超过2个请求. 例如,当我有3个并发请求时,第三个请求仅在第二个请求完成时才开始. 我在控制台应用程序上观察了
我有一个多用户COM应用程序,需要在SOAP WebServices上发出多个请求.每个SOAP请求可能持续10到60秒(这不在我的控制之下).问题是,我永远不能同时发出超过2个请求.
例如,当我有3个并发请求时,第三个请求仅在第二个请求完成时才开始. 当我尝试使用另一种语言(C#)使用相同的WebServices时,同样的情况发生了,但是,在C#客户端上有一个属性可以解决问题: System.Net.ServicePointManager.DefaultConnectionLimit 当我增加该属性时,我可以保留我想要的任何数量的并发请求.在Delphi上有没有类似的属性? 我正在使用WSDL导入器工具来使用Web服务(Delphi XE2). 解决方法
Delphi使用Wininet.dll发出SOAP请求,IE使用相同的DLL.
这个限制实际上是 documented. 你有2个选择: >按照知识库文章中的说明调整注册表 小代码示例(请注意,它不包括错误检查): Const INTERNET_OPTION_MAX_CONNS_PER_SERVER = 73; INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER = 74; var MaxConnections : Integer; begin MaxConnections := 10; // adapt to your needs InternetSetOption(Nil,INTERNET_OPTION_MAX_CONNS_PER_SERVER,@MaxConnections,SizeOf(MaxConnections )); InternetSetOption(Nil,INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER,SizeOf(MaxConnections )); // do SOAP call end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |