2011-03-30 52 views
9

在我的調試器中檢查.Net 4中的System.Net.ServicePointManager.DefaultConnectionLimit時,我看到真正的高數字。我在一臺機器上看到24,在另一臺機器上看到48。System.Net.ServicePointManager.DefaultConnectionLimit == 24 - > BUG?

對於新創建的ASP.NET MVC 3項目,甚至不需要對其進行任何配置更改即可。這是一個錯誤?該文檔明確指出默認值爲2:

ServicePoint 對象允許的最大併發連接數。 默認值是2。

http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.defaultconnectionlimit(v=VS.100).aspx

的DefaultNonPersistentConnectionLimit和DefaultPersistentConnectionLimit字段分別爲4和2,是更現實的,但DefaultConnectionLimit數目似乎超出範圍。

回答

12

這不是一個錯誤。它可以提供12個CPU。

該值來自您的Web.config或Machine.config中的<connectionManagement>。如果兩個文件都不包含元素,則可能由配置爲<processModel> element

+3

如果您要反編譯v4.0 System.Web並查看'SetAutoConfigLimits'方法,您會看到這設置爲2 * CPU。在.NET 4.5中,這似乎已更改,現在值設置爲Int32.MaxValue(0x7fffffff)。 – 2013-03-18 22:54:30

+1

這應該是12 *的CPU。 – 2013-03-18 23:10:57

+2

凱文是完全正確的,與框架4.5它確實是Int32.MaxValue。它在System.Web.HttpRuntime類中。 – 2014-01-22 15:28:17