HTML   发布时间:2022-04-14  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Web服务 – Delphi SOAP Client不能保留2个以上的并发请求.怎么增加?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个多用户COM应用程序,需要在SOAP Webservices上发出多个请求.每个SOAP请求可能持续10到60秒(这不在我的控制之下).问题是,我永远不能同时发出超过2个请求.

例如,当我有3个并发请求时,第三个请求仅在第二个请求完成时才开始.
我在控制台应用程序上观察了相同的行为(用于测试目的),向同一个Webservice发出多个并发请求,我再次被限制为2个请求.

当我尝试使用另一种语言(C#)使用相同的Webservices时,同样的情况发生了,但是,在C#客户端上有一个属性可以解决问题:

System.Net.servicePointManager.DefaultConnectionLimit

当我增加该属性时,我可以保留我想要的任何数量的并发请求.在Delphi上有没有类似的属性?

我正在使用WSDL导入器工具来使用Web服务(Delphi XE2).

解决方法

Delphi使用Wininet.dll发出SOAP请求,IE使用相同的DLl.
这个限制实际上是 documented.

你有2个选择:

>按照知识库文章中的说明调整注册表
>在SOAP调用之前使用InternetSetOption:

小代码示例(请注意,它不包括错误检查):

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;

大佬总结

以上是大佬教程为你收集整理的Web服务 – Delphi SOAP Client不能保留2个以上的并发请求.怎么增加?全部内容,希望文章能够帮你解决Web服务 – Delphi SOAP Client不能保留2个以上的并发请求.怎么增加?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。