我正在编写一个将在Windows Server 2008(IIS7)上运行的ASP.NET Web应用程序。
每个页面的代码隐藏需要使用HttpWebRequest和GET对外部服务器进行至少一次同步Web服务调用。
我的问题 - 我可以进行的出站HttpWebRequest调用数量有限制吗? (假设我正在呼叫的服务器没有限制)
有没有办法集中这些连接以使应用扩展得更好? Web园配置会有帮助吗?
答案 0 :(得分:5)
默认情况下,HTTP / 1.1服务器限制为两个连接,HTTP / 1.0服务器限制为四个连接。因此,如果您尝试向HTTP / 1.1服务器发出两个以上的未完成请求,则ASP.NEt应用程序将出现严重的吞吐量问题,例如。
您需要增加每台服务器或全局的连接限制。
例如,全球:
ServicePointManager.DefaultConnectionLimit = 10; // allow 10 outstanding connections
希望这有帮助。
答案 1 :(得分:1)
我认为你的问题应该面向网络配置。
如果每个页面都依赖于同步外部呼叫,我会说你会遇到麻烦。如果您收到N个挂起在外部Web服务上的请求,该怎么办?你最后会遇到一些问题,而你却无能为力。
您是否考虑过使用回调进行异步调用?
答案 2 :(得分:1)