HTTP连接池是否可行?

时间:2013-02-26 09:40:18

标签: c# httpwebrequest connection-pooling

对于与一组有限的其他服务器联系的C#webservice,我希望为每台服务器创建一个我希望能够联系的HTTP连接池。

课程的基本概念:

  • 每个池应该打开几个连接(3个连接?)到它的远程网络服务器,并保持这些连接活着。
  • 应该使用最长生命周期来回收(断开/重新连接)与远程Web服务器的连接,防止远程Web服务器在我们之前断开连接。
  • 不应同时创建连接,但在3个连接之间稍有暂停,因此回收也不会同时发生。
  • 如果远程网络服务器仍然意外断开连接,应该注意,我们应该重新连接。
  • 如果由于某种原因无法重新连接,请稍等片刻后重试。

这样,当我想发送一个HttpWebRequest时,我就有了现成的连接,在我想要使用它的时刻节省了建立连接的时间。

目前我不知道这是否是HttpWebRequest的默认功能。很抱歉,如果我要求显而易见的话。谷歌搜索只会让我对Java有类似的问题。

问题1:.NET / c#中是否存在这样的东西?

问题2:如果没有,互联网上是否存在此信息,您知道吗?

问题3:如果没有,如何自己建立一个?

1 个答案:

答案 0 :(得分:3)

HttpWebRequest(本质上意味着.net中的所有Http API)已默认使用连接池

如果您需要管理连接池的任何参数,请查看ServicePointServicePointManager类。