我需要一个高性能的脚本调用内部web服务。因此,我编写了一个powershell脚本来创建运行空间线程,每个线程都向一个常见的Web服务代理对象()发出请求。
我发现,不管我创建的线程数量和web服务应用程序池工作进程的数量,我只从运行脚本的计算机同时进行两个HTTP连接,因此只有两个进程出现在web服务中。结果还不够快。
通过在多台客户端计算机上运行我的脚本,我可以在强调web服务器之前将我的工作进程提升到8个。我需要用一个powershell脚本的代码到达那里。
我尝试将此注册表项设置为8:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet设置\MaxConnectionsPerProxy
这似乎确实提高了我的脚本的性能,但我仍然只看到到web服务的2个HTTP连接。
看起来真正的解决方案是管理这个.Net属性:
有人能向我解释一下在powershell中我如何处理这个问题吗?我无法找到返回的对象与ServicePoint类之间的任何连接?那么,在Powershell中设置什么来更改2连接限制呢?
发布于 2015-05-16 00:56:57
我认为您只需要在脚本中将默认连接限制设置为更大的值,例如:
[System.Net.ServicePointManager]::DefaultConnectionLimit = 8
ServicePointManager
与生成的类之间的连接是生成的类继承自SoapHttpClientProtocol
,后者内部使用System.Net.HttpWebRequest
进行网络调用。在内部,HttpWebRequest
使用ServicePoint
和ServicePointManager
来控制您可以同时进行的飞行中呼叫的数量。
https://stackoverflow.com/questions/30269442
复制相似问题