ConnectionManagementElement.MaxConnection и ServicePointManager.DefaultConnectionLimit
Я пытаюсь понять, что два свойства ConnectionManagementElement.MaxConnection
а также ServicePointManager.DefaultConnectionLimit
используются для управления исходящими соединениями для приложений ASP.net, и если более низкое значение в одном ограничит все исходящие соединения для приложения.
На основе информации MSDN для ServicePointManager DefaultConnectionLimit
свойство контролирует максимальное количество одновременных соединений, разрешенных ServicePoint
объект. В нем говорится, что начальное значение установлено равным 2, если только оно не выполняется на сервере, тогда оно равно 10, однако просто для простого вывода значения подставьте его фактическое действующее значение в 2147483647. Что подтверждается ссылкой на код платформы MS в ответе на этот SO пост.
На основе .Net Code значение по умолчанию для ConnectionManagementElement.MaxConnection
устанавливается на 1 для каждого уникального порта ip/domain +, если значения не определены в разделе управления подключением web.config, однако на основе блога от MS, когда autoConfig = true
в конфигурации машины значение по умолчанию составляет 12 * # ядер. В моем случае это было бы 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
контролировать разные ограничения на основе того, что инициировало сетевой запрос?