IIS ServicePoint ConnectionLimit始终设置为Int32.MaxValue

时间:2014-04-10 13:38:48

标签: c# asp.net iis

我在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服务是本地的。

我错过了什么吗?我是否误解了本地网络服务的定义?

提前感谢您的帮助。 尼科。

1 个答案:

答案 0 :(得分:0)

发现了这个问题。

如果在machine.config中将processModel autoConfig属性设置为“true”,则无法使用web.config覆盖ConnectionLimit

  <system.web>
    <processModel autoConfig="true" />
    ...
  </system.web>

如果要控制ConnectionLimit,请将其设置为“false”,但在这种情况下,您可能希望查看启用autoConfig时设置的其他值。