我在IIS上运行了一个本地Web应用程序,它与AWS上部署的服务进行联系。
当我测试针对AWS服务的吞吐量时,我意识到我的本地Web应用程序并不通过以下代码尊重web.config中设置的ConnectionLimit值:
<system.net>
<connectionManagement>
<add address="*" maxconnection="48" />
</connectionManagement>
</system.net>
相反,以下代码始终返回int.MaxValue
@(ServicePointManager.FindServicePoint(new Uri("https://myawsservice/")).ConnectionLimit)
这似乎与我在此处读到的内容相矛盾:http://msdn.microsoft.com/en-us/library/ms998583.aspx#scalenetchapt17_topic14
增加maxconnection可以使更多的调用同时执行到远程Web服务。此属性不会影响本地Web服务调用。并发调用数量的增加会导致用于进行远程调用的线程的利用率增加。
我希望Int32.MaxValue仅适用于本地Web服务。我不认为我的AWS服务是本地的。
我错过了什么吗?我是否误解了本地网络服务的定义?
提前感谢您的帮助。 尼科。
答案 0 :(得分:0)
发现了这个问题。
如果在machine.config中将processModel autoConfig属性设置为“true”,则无法使用web.config覆盖ConnectionLimit
<system.web>
<processModel autoConfig="true" />
...
</system.web>
如果要控制ConnectionLimit,请将其设置为“false”,但在这种情况下,您可能希望查看启用autoConfig时设置的其他值。