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