我向 Web 服务发送了 100 多个请求 [重复]
Posted
技术标签:
【中文标题】我向 Web 服务发送了 100 多个请求 [重复]【英文标题】:I sent over than 100 requests to web service [duplicate] 【发布时间】:2021-12-19 21:06:56 【问题描述】:我向使用 Parallel.Foreach
的 Web 服务发送了超过 100 个请求,它处理得很好,但是当使用 Wireshark 查看流量时,我每秒只能看到 4 个或最多 10 个请求。
然后我在 SOAPUI TOOL 中的同一台机器上尝试了批量多线程中的相同案例 Mode 然后我看到 100 个请求是在同一秒发送的。
我正在使用的任何建议都没有
C# 2017 框架 4.5 操作系统赢 10 CPU 内核 4 I7 内存 16 GB【问题讨论】:
知道我应该如何处理这种情况 您可能达到了请求数限制。查看this 答案。 您拥有网络服务吗? 我们的供应商的网络服务“不在本地”,并且没有限制发送的请求 @MohannadAsha 欢迎来到 ***。Parallel.Foreach
专为 CPU 绑定操作而设计。这就是为什么您只看到少数请求的原因,因为您没有 100 个 CPU 内核 :D 请首选 Task.WhenAll
而不是 I/O 操作。
【参考方案1】:
这不是 parallel.foreach 问题 - 问题是 ServicePointManager,它限制了对任何域名的并行请求数。如您所见,标准是 4 个并行请求。
https://docs.microsoft.com/en-us/dotnet/api/system.net.servicepointmanager?view=net-5.0
Parallel.ForEach 会将所有任务排队,但随后请求会遇到限制。哦,那个管理器是可以配置的;)
【讨论】:
以上是关于我向 Web 服务发送了 100 多个请求 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
为啥如果我向服务器上的数据库请求超过 100 行,但结果却一无所获?
Web 服务器如何在单个端口 (80) 上一次处理多个用户的传入请求?