Поделиться через


Параметры конфигурации среды выполнения для сети

Протокол HTTP/2

  • Указывает, включена ли поддержка протокола HTTP/2.
  • Если этот параметр не указан, включена поддержка протокола HTTP/2. Это эквивалентно присвоению значения true.
Название настройки Ценности
runtimeconfig.json System.Net.Http.SocketsHttpHandler.Http2Support false — отключено
true — включено
Переменная среды DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT 0 — отключено
1 — включено

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.

Протокол HTTP/3

  • Начиная с .NET 7 http/3 по умолчанию включен.
Название настройки Ценности
runtimeconfig.json System.Net.SocketsHttpHandler.Http3Support false -Отключен
true — включено
Переменная среды DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT 0 — отключено
1 — включено

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.

Создание имени участника-службы в HttpClient (.NET 6 и более поздних версий)

  • Влияет на создание имен субъектов-служб (SPN) для проверки подлинности Kerberos и NTLM при Host отсутствии заголовка, а целевой объект не выполняется на порту по умолчанию.
  • Версии .NET 6 и более поздних версий не включают порт в имя участника-службы по умолчанию. Однако поведение настраивается.
Название настройки Ценности
runtimeconfig.json System.Net.Http.UsePortInSpn true — включить номер порта в имя субъекта-службы, например HTTP/host:port
false — не включают порт в имя субъекта-службы, например HTTP/host
Переменная среды DOTNET_SYSTEM_NET_HTTP_USEPORTINSPN 1 — включить номер порта в имя субъекта-службы, например HTTP/host:port
0 — не включают порт в имя субъекта-службы, например HTTP/host

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.

Масштабирование динамического окна HTTP/2

  • Указывает, отключен ли алгоритм масштабирования динамического окна HTTP/2 для управления потоками. Алгоритм включен по умолчанию.
  • Если задано значение true, алгоритм масштабирования динамического окна отключен.
Название настройки Ценности
runtimeconfig.json System.Net.SocketsHttpHandler.Http2FlowControl.DisableDynamicWindowSizing false — включен (по умолчанию)
true — отключено
Переменная среды DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING 0 — включен (по умолчанию)
1 — отключено

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.

Размер окна получения потока HTTP/2

  • Настраивает максимальный размер окна получения потока HTTP/2.
  • Значение по умолчанию — 16 МБ. Значения ниже 65 535 зажаты до 65 535. Нет жесткого верхнего предела, но увеличение этого параметра за пределами по умолчанию полезно только для сетей с высокой пропускной способностью и высокой задержкой.
Название настройки Ценности
Переменная среды DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE Целое число (по умолчанию: 16 МБ; минимум: 65 535)

Пороговое значение масштабирования окна потока HTTP/2

  • Настраивает умножение, которое определяет, насколько агрессивно растет окно получения потока HTTP/2. Более высокие значения приводят к более консервативному росту окон, что снижает пиковую пропускную способность.
  • По умолчанию это — 1.0. Значения ниже 0 сбрасываются по умолчанию. Нет жесткого верхнего предела, но значения гораздо выше постепенного ограничения пропускной способности по умолчанию для каждого запроса.

Замечание

Этот параметр предназначен для расширенной диагностики и внутренней настройки. Большинству разработчиков не нужно изменять его.

Название настройки Ценности
Переменная среды DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER Float (по умолчанию: 1.0; минимум: 0)

Распространение действий HTTP

Указывает, включена HttpClientли распространение распределенных действий трассировки. При включении исходящие HTTP-запросы распространяют заголовки контекста трассировки (например) для средств распределенной трассировки, таких как traceparentOpenTelemetry.

Название настройки Ценности
runtimeconfig.json System.Net.Http.EnableActivityPropagation true — включен (по умолчанию)
false — отключено
Переменная среды DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION 1 — включен (по умолчанию)
0 — отключено

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.

Ожидание времени ожидания ожидания подключения при завершении запроса

Настраивает время ожидания (в миллисекундах) для завершения ожидающей попытки подключения после завершения запроса HTTP. Когда подключение по-прежнему устанавливается после завершения запроса, это время ожидания определяет время ожидания, прежде чем отказаться от попытки подключения.

  • По умолчанию используется значение 5000 (5 секунд).
  • Установите для -1 ожидания неограниченное время, пока подключение не завершится.
  • Установите для 0 отмены ожидающего подключения сразу после завершения запроса.
  • Нет жесткого верхнего предела, но очень большие значения нецелесообразны.
Название настройки Ценности
runtimeconfig.json System.Net.SocketsHttpHandler.PendingConnectionTimeoutOnRequestCompletion Целое число (по умолчанию: 5000)
Переменная среды DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_PENDINGCONNECTIONTIMEOUTONREQUESTCOMPLETION Целое число (по умолчанию: 5000)

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.

Предварительная проверка подлинности прокси-сервера

При включении SocketsHttpHandler упреждающая отправка Basic учетных данных проверки подлинности прокси-сервера в первом запросе вместо ожидания 407 ответа на запрос от прокси-сервера. Это полезно для прокси-серверов, которые не отправляют 407 ответы на запросы.

Название настройки Ценности
runtimeconfig.json System.Net.Http.SocketsHttpHandler.ProxyPreAuthenticate false — отключен (по умолчанию)
true — включено
Переменная среды DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_PROXYPREAUTHENTICATE 0 — отключен (по умолчанию)
1 — включено

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.

Максимальное количество подключений на сервер

Настраивает максимальное количество одновременных TCP-подключений, открывающихся SocketsHttpHandler на одном сервере. Обработчик игнорирует значения меньше, чем 1 и использует значение по умолчанию.

  • Значение по умолчанию не ограничено (int.MaxValue).
Название настройки Ценности
runtimeconfig.json System.Net.SocketsHttpHandler.MaxConnectionsPerServer Целое число (по умолчанию: неограниченное)
Переменная среды DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_MAXCONNECTIONSPERSERVER Целое число (по умолчанию: неограниченное)

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.

Встроенные завершения сокета

Указывает, разрешено ли продолжение сокета запускаться в потоке событий, а не отправляться в него System.Threading.ThreadPool. Включение этого параметра может повысить производительность в некоторых сценариях. Однако это может снизить производительность, если затратная работа удерживает поток ввода-вывода дольше, чем требуется.

Замечание

Проверьте, чтобы включить этот параметр, помогает повысить производительность в конкретном сценарии.

Название настройки Ценности
Переменная среды DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS 0 — отключен (по умолчанию)
1 — включено

Число потоков сокета

Настраивает количество потоков, используемых для ввода-вывода сокета. Если параметр не переопределен, значение вычисляется на основе количества процессоров и архитектуры. Практические значения находятся в диапазоне [1, ProcessorCount]. Значения за пределами этого диапазона не отклоняются, но вряд ли повышают производительность.

Замечание

Этот параметр предназначен для сценариев крайней нагрузки. Большинству разработчиков не нужно изменять его.

Название настройки Ценности
Переменная среды DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT Целое число

IPv6

Указывает, отключен ли протокол Internet Protocol версии 6 (IPv6).

Название настройки Ценности
runtimeconfig.json System.Net.DisableIPv6 false — включен (по умолчанию)
true — отключено
Переменная среды DOTNET_SYSTEM_NET_DISABLEIPV6 0 — включен (по умолчанию)
1 — отключено

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.

Возобновление сеанса TLS

Контроль того, отключает ли возобновление сеанса TLS для SslStreamвозобновления сеанса TLS. Возобновление сеанса позволяет повторному подключению TLS пропускать полное подтверждение путем повторного использование ранее согласованных параметров сеанса, что снижает задержку.

Название настройки Ценности
runtimeconfig.json System.Net.Security.DisableTlsResume false — включен (по умолчанию)
true — отключено
Переменная среды DOTNET_SYSTEM_NET_SECURITY_DISABLETLSRESUME 0 — включен (по умолчанию)
1 — отключено

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.

Скачивание AIA сервера

При включении клиент TLS автоматически загружает промежуточные сертификаты из URL-адресов расширения AIA в сертификатах сервера. Это позволяет клиенту создавать полную цепочку сертификатов, даже если сервер не отправляет полную цепочку.

Название настройки Ценности
runtimeconfig.json System.Net.Security.EnableServerAiaDownloads false — отключен (по умолчанию)
true — включено
Переменная среды DOTNET_SYSTEM_NET_SECURITY_ENABLESERVERAIADOWNLOADS 0 — отключен (по умолчанию)
1 — включено

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.

Кэширование конфигурации QUIC

Отключает кэширование объектов конфигурации MsQuic. При включении (по умолчанию) системные кэшируют и повторно используют объекты конфигурации между подключениями, что снижает затраты на настройку TLS и QUIC для повторяющихся подключений с теми же параметрами.

Название настройки Ценности
runtimeconfig.json System.Net.Quic.DisableConfigurationCache false — включена кэширование (по умолчанию)
true — кэширование отключено
Переменная среды DOTNET_SYSTEM_NET_QUIC_DISABLE_CONFIGURATION_CACHE 0 — включена кэширование (по умолчанию)
1 — кэширование отключено

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.

Локальное приложение MsQuic (Windows)

При включении реализация QUIC использует библиотеку MsQuic из каталога приложения, а не библиотеку, предоставляемую системой, с сборкой .NET.

Название настройки Ценности
runtimeconfig.json System.Net.Quic.AppLocalMsQuic false — использование system MsQuic (по умолчанию)
true — использование app-local MsQuic

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.

Буферизация ответов ядра HttpListener (Windows)

Если этот параметр включен, HttpListener буферизирует данные ответа в ядре с помощью HTTP.sys. Буферизация ядра может значительно повысить пропускную способность по сравнению с подключениями с высокой задержкой для приложений, использующих синхронные операции ввода-вывода или асинхронные операции ввода-вывода с одной выдающейся записью одновременно. Не включите этот параметр для приложений с несколькими одновременными невыполненными записью.

Замечание

Включение буферизации ответов ядра может привести к более высокому использованию ЦП и памяти, HTTP.sys.

Название настройки Ценности
runtimeconfig.json System.Net.HttpListener.EnableKernelResponseBuffering false — отключен (по умолчанию)
true — включено

Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude. Пример см. в свойствах MSBuild.