ConnectionManagementElement.MaxConnection и ServicePointManager.DefaultConnectionLimit - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь понять, для чего используются два свойства 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 будут контролировать разные ограничения в зависимости от того, что инициировало сетевой запрос?

...