我试图了解两个属性ConnectionManagementElement.MaxConnection
和ServicePointManager.DefaultConnectionLimit
用于管理ASP.net应用程序的出站连接,并且如果其中一个较低的值会限制所有出站连接申请。
基于ServicePointManager的MSDN信息,DefaultConnectionLimit
属性控制ServicePoint
对象所允许的最大并发连接。它说初始值设置为2,除非它在服务器上运行,然后设置为10,但是仅将值的简单输出即为它的实际运行值2147483647。MS框架代码reference in the answer to this SO post支持该值。< / p>
如果未在web.config连接管理部分中定义值,则基于.Net Code的ConnectionManagementElement.MaxConnection
的默认值将被设置为每个唯一ip /域+端口1。 blog from MS在计算机配置中的autoConfig = true
时,默认值为12 * #cores。在我的情况下,该值为48 = 12 *4。似乎没有一种方法可以获取config节所设置的属性的运行值,因此,我现在假设该值是由autoConfig确定它应该存在,并且没有其他东西可以覆盖它。
有了关于这两个属性的那些细节,它们似乎是完全独立的。但是,发布到asp.net forum的问题有一个答案,说配置部分设置只是现在设置ServicePointManager.DefaultConnectionLimit
值的另一种方法。
当ConnectionManagementElement.MaxConnection
设置为true时,是否使用Web /计算机配置autoConfig
?
如果是这样,ConnectionManagementElement.MaxConnection
是否在ServicePointManager.DefaultConnectionLimit
处设置Application_Start()
的值,是否等同于在global.asax中已定义的Application_Start()
方法中将其设置为代码? / p>
如果没有,ConnectionManagementElement.MaxConnection
和ServicePointManager.DefaultConnectionLimit
会根据发起网络请求的内容来控制不同的限制吗?