2016-04-22 63 views
1

出於診斷目的,我正在記錄ServicePointManager.DefaultConnectionLimit。但奇怪的是,它似乎正在返回Int32.MaxValue(即2147483647)。ServicePointManager.DefaultConnectionLimit返回Int32.MaxValue

這似乎與關於該主題的MSDN documentation

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

對於背景下,我在一個ASP.Net應用4獲得這個價值基礎上@ Wimmel的鏈接似乎在ASP.Net,這是在4.6.1

+1

這是它在asp.net 4.5提高到'Int32.MaxValue'對於Web項目註釋:[System.Net.ServicePointManager.DefaultConnectionLimit == 24 - > BUG?](HTTP:// stackoverflow.com/a/5649013/33499)。 – wimh

回答

2

運行設置爲Int32.MaxValue作爲Http運行時的一部分。

我們可以通過查看System.Web組件的HttpRuntime類來查看此內容。

有一種方法叫做SetAutoConfigLimits,它將其設置爲Int32.MaxValue。 這是反編譯的代碼。

private void SetAutoConfigLimits(ProcessModelSection pmConfig) 
{ 
    int workerThreads; 
    int completionPortThreads; 
    ThreadPool.GetMaxThreads(out workerThreads, out completionPortThreads); 
    if (pmConfig.DefaultMaxWorkerThreadsForAutoConfig != workerThreads || pmConfig.DefaultMaxIoThreadsForAutoConfig != completionPortThreads) 
    UnsafeNativeMethods.SetClrThreadPoolLimits(pmConfig.DefaultMaxWorkerThreadsForAutoConfig, pmConfig.DefaultMaxIoThreadsForAutoConfig, true); 
    ServicePointManager.DefaultConnectionLimit = int.MaxValue; 
} 
相關問題