Opções de configuração de tempo de execução para sistema de rede
Protocolo HTTP/2
Configura se o suporte a protocolo HTTP/2 está habilitado.
Introduzido no .NET Core 3.0.
Somente .NET Core 3.0: se você omitir essa configuração, o suporte para o protocolo HTTP/2 será desabilitado. Isso é equivalente a definir o valor como
false
..NET Core 3.1 e .NET 5+: se você omitir essa configuração, o suporte para o protocolo HTTP/2 será habilitado. Isso é equivalente a definir o valor como
true
.
Nome da configuração | Valores | |
---|---|---|
runtimeconfig.json | System.Net.Http.SocketsHttpHandler.Http2Support |
false -desabilitadotrue – Habilitado |
Variável de ambiente | DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT |
0 -desabilitado1 – Habilitado |
Criação de SPN em HttpClient (.NET 6 e posterior)
- Afeta a geração de SPN (nome da entidade de serviço) para a autenticação Kerberos e NTLM quando o cabeçalho
Host
está ausente e o destino não está em execução na porta padrão. - O .NET Core 2.x e o 3.x não incluem a porta no SPN.
- O .NET Core 5.x inclui a porta no SPN
- O .NET 6 e as versões posteriores não incluem a porta, mas o comportamento é configurável.
Nome da configuração | Valores | |
---|---|---|
runtimeconfig.json | System.Net.Http.UsePortInSpn |
true – Inclui o número da porta no SPN, por exemplo, HTTP/host:port false – Não inclui a porta no SPN, por exemplo, HTTP/host |
Variável de ambiente | DOTNET_SYSTEM_NET_HTTP_USEPORTINSPN |
1 – Inclui o número da porta no SPN, por exemplo, HTTP/host:port 0 – Não inclui a porta no SPN, por exemplo, HTTP/host |
UseSocketsHttpHandler (somente .NET Core 2.1 – 3.1)
Configura se System.Net.Http.HttpClientHandler usa System.Net.Http.SocketsHttpHandler ou pilhas de protocolo HTTP mais antigas (WinHttpHandler no Windows e
CurlHandler
, uma classe interna implementada com base no libcurl, no Linux).Observação
Você pode estar usando APIs de rede de alto nível em vez de criar instâncias da classe HttpClientHandler diretamente. Essa configuração também afeta qual pilha de protocolo HTTP é usada pelas APIs de rede de alto nível, incluindo HttpClient e HttpClientFactory.
Se você omitir essa configuração, HttpClientHandler usará SocketsHttpHandler. Isso é equivalente a definir o valor como
true
.
Nome da configuração | Valores | |
---|---|---|
runtimeconfig.json | System.Net.Http.UseSocketsHttpHandler |
true – Habilita o uso de SocketsHttpHandlerfalse – Habilita o uso de WinHttpHandler no Windows ou de libcurl no Linux |
Variável de ambiente | DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER |
1 – Habilita o uso de SocketsHttpHandler0 – Habilita o uso de WinHttpHandler no Windows ou de libcurl no Linux |
Observação
Do .NET 5 em diante, a configuração System.Net.Http.UseSocketsHttpHandler
não está mais disponível.
Cabeçalhos Latin1 (somente .NET Core 3.1)
Essa opção permite relaxar a validação de cabeçalho HTTP, permitindo que SocketsHttpHandler envie caracteres codificados ISO-8859-1 (Latin-1) em cabeçalhos.
Se você omitir essa configuração, uma tentativa de enviar um caractere não ASCII resultará em HttpRequestException. Isso é equivalente a definir o valor como
false
.
Nome da configuração | Valores | |
---|---|---|
runtimeconfig.json | System.Net.Http.SocketsHttpHandler.AllowLatin1Headers |
false -desabilitadotrue – Habilitado |
Variável de ambiente | DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_ALLOWLATIN1HEADERS |
0 -desabilitado1 – Habilitado |
Observação
Essa opção só está disponível no .NET Core 3.1 desde a versão 3.1.9 e não em versões anteriores nem posteriores. No .NET 5, é recomendável usar RequestHeaderEncodingSelector.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de