Я пытаюсь понять, для чего используются два свойства ConnectionManagementElement.MaxConnection
и ServicePointManager.DefaultConnectionLimit
при управлении исходящими соединениями для приложений ASP.net, и если более низкое значение в одном ограничит все исходящие соединения для приложения.
На основе информации MSDN для ServicePointManager свойство DefaultConnectionLimit
контролирует максимальное число одновременных соединений, разрешенных объектом ServicePoint
. В нем говорится, что начальное значение установлено равным 2, если оно не запущено на сервере, тогда оно равно 10, однако, просто выводим значение, выставив его действительное значение на 2147483647. Что поддерживается в коде структуры MS ссылка в ответе на этот пост .
На основе .Net-кода значение по умолчанию для ConnectionManagementElement.MaxConnection
устанавливается равным 1 для каждого уникального порта ip / domain +, если значения не определены в разделе управления подключением web.config, однако на основе в блоге от MS , когда autoConfig = true
в конфигурации машины, значением по умолчанию является 12 * #cores. В моем случае это будет 48 = 12 * 4. Похоже, не существует способа получить текущее значение для свойства, которое устанавливается в разделе конфигурации, поэтому сейчас я предполагаю, что это значение определяется каким autoConfig определяет, что это должно быть, и что ничто другое не переопределяет его.
С этими подробностями о двух свойствах они кажутся совершенно независимыми. Однако на вопрос, опубликованный на форуме asp.net , есть ответ, в котором говорится, что настройка раздела конфигурации является просто альтернативным способом установки значения ServicePointManager.DefaultConnectionLimit
.
Используется ли веб / машинная конфигурация ConnectionManagementElement.MaxConnection
, когда для autoConfig
установлено значение true?
Если это так, ConnectionManagementElement.MaxConnection
устанавливает значение ServicePointManager.DefaultConnectionLimit
в Application_Start()
, делая синонимом его установки в качестве кода в определенном методе Application_Start()
в global.asax?
Если нет, то ConnectionManagementElement.MaxConnection
и ServicePointManager.DefaultConnectionLimit
будут контролировать разные ограничения в зависимости от того, что инициировало сетевой запрос?