我有一个在.net 4.0和IIS7上运行的Web应用程序。 当提交表单时,我必须调用两个外部Web服务,等待响应,对它做些什么,然后返回响应。 问题是Web服务每次需要20秒才能回复(这是我无法控制的)。 我决定采取一种asynchronous的方式,所以我可以同时击中两个服务,反对等待响应,然后再打另一个服务。
现在,如果我有10个用户同时提交,我会在20个独立的线程上创build20个出站请求。 我读到IIS可能不太满意,因为限制设置为每个CPU 12个出站TCP连接(machine.config中的最大连接数)。 有人可以确认吗? 还有什么我应该考虑在这个特定的场景,以确保IIS发挥很好?
谢谢!
您也可以重写web.config中的maxconnection值。
<system.net> <connectionManagement> <add address="*" maxconnection="20"/> </connectionManagement> </system.net>
我正在使用一个也使用多个外部Web服务作为数据源的应用程序。 特定页面可以打十几个asynchronousWeb服务调用。 所以在我们的例子中maxconnection在web.config中被设置为2000,并且我们没有观察到出站连接的限制。
唯一要警告的是,应用程序仍然在IIS6中托pipe,所以我不是完全正面的这将保持在IIS7相同。 但是,由于maxconnectionconfiguration是特定于.NET,而不是特定于IIS,我不认为这会发生任何更改。