Параметры конфигурации времени выполнения для сети
Протокол HTTP/2
Указывает, включена ли поддержка протокола HTTP/2.
Представлено в .NET Core 3.0.
Только .NET Core 3.0. Если этот параметр не указан, поддержка протокола HTTP/2 отключена. Это эквивалентно присвоению значения
false
..NET Core 3.1 и .NET 5+: если этот параметр не указан, поддержка протокола HTTP/2 включена. Это эквивалентно присвоению значения
true
.
Имя настройки | Values | |
---|---|---|
runtimeconfig.json | System.Net.Http.SocketsHttpHandler.Http2Support |
false — отключеноtrue — включено |
Переменная среды | DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT |
0 — отключено1 — включено |
Этот параметр конфигурации не имеет определенного свойства MSBuild. Однако вместо этого можно добавить RuntimeHostConfigurationOption
элемент MSBuild. Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude
. Пример см. в свойствах MSBuild.
Создание имени субъекта-службы в HttpClient (.NET 6 и более поздние версии)
- Влияет на создание имен субъектов-служб для проверки подлинности Kerberos и NTLM, если отсутствует заголовок
Host
и целевой объект работает не на стандартном порте. - .NET Core 2.x и 3.x не включают порт в имя субъекта-службы.
- .NET Core 5.x включает порт в имя субъекта-службы
- .NET 6 и более поздних версий не включает порт, но позволяет настроить это поведение.
Имя настройки | Values | |
---|---|---|
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.
UseSocketsHttpHandler (только для .NET Core 2.1–3.1)
Определяет, использует ли System.Net.Http.HttpClientHandlerSystem.Net.Http.SocketsHttpHandler или более старые стеки протокола HTTP (WinHttpHandler в Windows и
CurlHandler
— внутренний класс, реализованный на базе libcurl, в Linux).Примечание.
Вместо непосредственного создания экземпляра класса HttpClientHandler вы можете использовать высокоуровневые сетевые интерфейсы API. Этот параметр также влияет на то, какой стек протокола HTTP используется высокоуровневыми сетевыми интерфейсами API, включая HttpClient и HttpClientFactory.
Если этот параметр не задан, HttpClientHandler будет использовать SocketsHttpHandler. Это эквивалентно присвоению значения
true
.
Имя настройки | Values | |
---|---|---|
runtimeconfig.json | System.Net.Http.UseSocketsHttpHandler |
true — позволяет использовать SocketsHttpHandlerfalse — позволяет использовать WinHttpHandler в Windows или libcurl в Linux |
Переменная среды | DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER |
1 — позволяет использовать SocketsHttpHandler0 — позволяет использовать WinHttpHandler в Windows или libcurl в Linux |
Примечание.
Начиная с .NET 5 параметр System.Net.Http.UseSocketsHttpHandler
больше недоступен.
Заголовки Latin1 (только в .NET Core 3.1)
Этот параметр позволяет сделать проверку заголовков HTTP менее строгой, благодаря чему SocketsHttpHandler может передавать в заголовках символы в кодировке ISO-8859-1 (Latin-1).
Если этот параметр не задан, попытка отправки символа не в кодировке ASCII приведет к исключению HttpRequestException. Это эквивалентно присвоению значения
false
.
Имя настройки | Values | |
---|---|---|
runtimeconfig.json | System.Net.Http.SocketsHttpHandler.AllowLatin1Headers |
false — отключеноtrue — включено |
Переменная среды | DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_ALLOWLATIN1HEADERS |
0 — отключено1 — включено |
Примечание.
Этот параметр доступен только в .NET Core 3.1, начиная с версии 3.1.9, но не в более ранних или поздних версиях. В .NET 5 рекомендуется использовать RequestHeaderEncodingSelector.
Обратная связь
Отправить и просмотреть отзыв по