C# HttpWebRequest连接限制和RestFUL服务器

C# HttpWebRequest连接限制和RestFUL服务器,c#,asp.net,asp.net-mvc,oauth,social-networking,C#,Asp.net,Asp.net Mvc,Oauth,Social Networking,我已经创建了一个服务器产品,它连接到一些社交网络服务器,并发送到状态更新的数据等。使用此解决方案的用户已经对服务器进行了必要的社交网络服务器身份验证 事实上,我现在没有问题,但我想我会的 我的服务器将通过Http和C#HttpWebRequest实例向必要的服务器打开数千个并发请求。我已经知道,可以使用以下属性更改并发请求限制 ServicePointManager.DefaultConnectionLimit 好的,如果你设定的值超过100,这个限制是最大100 因此,即使更改ServiceP

我已经创建了一个服务器产品,它连接到一些社交网络服务器,并发送到状态更新的数据等。使用此解决方案的用户已经对服务器进行了必要的社交网络服务器身份验证

事实上,我现在没有问题,但我想我会的

我的服务器将通过Http和C#HttpWebRequest实例向必要的服务器打开数千个并发请求。我已经知道,可以使用以下属性更改并发请求限制

ServicePointManager.DefaultConnectionLimit

好的,如果你设定的值超过100,这个限制是最大100

因此,即使更改ServicePointManager的DefaultConnectionLimit属性,HttpWebRequest也将面临瓶颈问题

我想知道你们在想什么。
你有什么建议吗

忽略这是否是一个好主意,您是否尝试过为每个请求使用唯一的ConnectionGroupName,例如Guid.NewGuid().ToString()?连接限制是针对每个连接组的,因此这可能会有所帮助,除非存在一些全局限制。您应该禁用KeepAlive,除非您将在后续请求中重用组名。查看我的答案。

您真的绝对需要同时使用所有这些连接吗?即使您这样做了,您是否能够同时充分处理响应?您如何使用连接?Sync/async听起来不错,你有没有对你的想法进行过压力测试?我没有尝试过大量连接,但它确实在小范围内覆盖了连接限制。MSDN中提到了这一点,我也尝试过。MSDN:“每个连接组都会为服务器创建额外的连接。这可能会导致超出该服务器的ServicePoint.ConnectionLimit属性设置的连接数。”System.Net.HttpClient也使用这种策略。只为像我这样的人,现在来到这条线。