在ASP.NET / IIS7中可以进行多少并发的出站HttpWebRequest调用?

时间:2009-09-24 21:43:17

标签: asp.net httpwebrequest connection tcp webrequest

我正在编写一个将在Windows Server 2008(IIS7)上运行的ASP.NET Web应用程序。

每个页面的代码隐藏需要使用HttpWebRequest和GET对外部服务器进行至少一次同步Web服务调用。

我的问题 - 我可以进行的出站HttpWebRequest调用数量有限制吗? (假设我正在呼叫的服务器没有限制)

有没有办法集中这些连接以使应用扩展得更好? Web园配置会有帮助吗?

3 个答案:

答案 0 :(得分:5)

默认情况下,HTTP / 1.1服务器限制为两个连接,HTTP / 1.0服务器限制为四个连接。因此,如果您尝试向HTTP / 1.1服务器发出两个以上的未完成请求,则ASP.NEt应用程序将出现严重的吞吐量问题,例如。

您需要增加每台服务器或全局的连接限制。

例如,全球:

ServicePointManager.DefaultConnectionLimit = 10; // allow 10 outstanding connections

希望这有帮助。

答案 1 :(得分:1)

我认为你的问题应该面向网络配置。

如果每个页面都依赖于同步外部呼叫,我会说你会遇到麻烦。如果您收到N个挂起在外部Web服务上的请求,该怎么办?你最后会遇到一些问题,而你却无能为力。

您是否考虑过使用回调进行异步调用?

编辑:Asynchronous Pages in ASP.NET 2.0

答案 2 :(得分:1)

以下链接指向优化Asp.net的非常好的文章。

http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx

希望它有所帮助;)