2016-04-22 16 views
1

診断目的でServicePointManager.DefaultConnectionLimitを記録しています。しかし、奇妙なことに、Int32.MaxValue(つまり、2147483647)が返されているようです。ServicePointManager.DefaultConnectionLimit Int32.MaxValueを返す

このテーマにMSDN documentationと矛盾するように見える:

のServicePointオブジェクトで許可される同時接続の最大数。デフォルト値はコンテキスト2.

ですが、私はあることをASP.Netに思える@ Wimmelのリンクに基づいて4.6.1

+1

それはWebプロジェクトのためにInt32.MaxValue' 'にasp.net 4.5に増加したコメントです:[System.Net.ServicePointManager.DefaultConnectionLimit == 24 - > BUG?](のhttp:// stackoverflow.com/a/5649013/33499)。 – wimh

答えて

2

上で実行されているASP.Net 4アプリケーションでこの値を取得していますHttpランタイムの一部としてInt32.MaxValueに設定します。

HttpRuntimeクラスのSystem.Webアセンブリを調べると分かります。

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; 
} 
関連する問題