我正在编写一个将在 Windows Server 2008 (IIS7) 上运行的 ASP.NET Web 应用程序。
每个页面的代码隐藏都需要使用 HttpWebRequest 和 GET 对外部服务器进行至少一次同步 Web 服务调用。
我的问题 - 我可以进行的出站 HttpWebRequest 调用的数量是否有限制?(假设我调用的服务器没有限制)
有没有办法汇集这些连接以使应用程序更好地扩展?网络花园配置有帮助吗?
我正在编写一个将在 Windows Server 2008 (IIS7) 上运行的 ASP.NET Web 应用程序。
每个页面的代码隐藏都需要使用 HttpWebRequest 和 GET 对外部服务器进行至少一次同步 Web 服务调用。
我的问题 - 我可以进行的出站 HttpWebRequest 调用的数量是否有限制?(假设我调用的服务器没有限制)
有没有办法汇集这些连接以使应用程序更好地扩展?网络花园配置有帮助吗?
默认情况下,HTTP/1.1 服务器限制为两个连接,HTTP/1.0 服务器限制为四个连接。因此,如果您尝试向 HTTP/1.1 服务器发出两个以上未完成的请求,例如,您的 ASP.NET 应用程序将遇到严重的吞吐量问题。
您将需要增加每个服务器或全局的连接限制。
例如,在全球范围内:
ServicePointManager.DefaultConnectionLimit = 10; // allow 10 outstanding connections
希望这可以帮助。
我认为您的问题应该针对网络配置。
如果每个页面都依赖于同步外部调用,我会说你是在自找麻烦。如果您收到 N 个挂在外部 Web 服务上的请求怎么办?那时你会遇到一些问题,你对此无能为力。
您是否考虑过带有回调的异步调用?
以下链接指向一篇非常棒的文章,用于优化 Asp.net。
http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx
希望能帮助到你 ;)