Condividi tramite


Opzioni di configurazione del runtime per la rete

Protocollo HTTP/2

  • Configura se il supporto per il protocollo HTTP/2 è abilitato.
  • Se si omette questa impostazione, il supporto per il protocollo HTTP/2 è abilitato. Equivale a impostare il valore su true.
Nome della impostazione Valori
runtimeconfig.json System.Net.Http.SocketsHttpHandler.Http2Support false - disabilitata
true - abilitato
Variabile di ambiente DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT 0 - disabilitata
1 - abilitato

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.

Protocollo HTTP/3

  • A partire da .NET 7, HTTP/3 è abilitato per impostazione predefinita.
Nome della impostazione Valori
runtimeconfig.json System.Net.SocketsHttpHandler.Http3Support false -Disabili
true - abilitato
Variabile di ambiente DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT 0 - disabilitata
1 - abilitato

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.

Creazione del nome SPN in HttpClient (.NET 6 e versioni successive)

  • Influisce sulla generazione di nomi dell'entità servizio (SPN) per l'autenticazione Kerberos e NTLM quando Host l'intestazione è mancante e la destinazione non è in esecuzione sulla porta predefinita.
  • .NET 6 e versioni successive non includono la porta nel nome SPN per impostazione predefinita. Tuttavia, il comportamento è configurabile.
Nome della impostazione Valori
runtimeconfig.json System.Net.Http.UsePortInSpn true - includere il numero di porta nel nome SPN, ad esempio HTTP/host:port
false - non includere la porta nel nome SPN, ad esempio HTTP/host
Variabile di ambiente DOTNET_SYSTEM_NET_HTTP_USEPORTINSPN 1 - includere il numero di porta nel nome SPN, ad esempio HTTP/host:port
0 - non includere la porta nel nome SPN, ad esempio HTTP/host

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.

Ridimensionamento delle finestre dinamiche HTTP/2

  • Configura se l'algoritmo di ridimensionamento delle finestre dinamiche HTTP/2 è disabilitato per il controllo del flusso. L'algoritmo è abilitato per impostazione predefinita.
  • Se impostato su true, l'algoritmo di ridimensionamento delle finestre dinamiche è disabilitato.
Nome della impostazione Valori
runtimeconfig.json System.Net.SocketsHttpHandler.Http2FlowControl.DisableDynamicWindowSizing false - abilitato (impostazione predefinita)
true - disabilitata
Variabile di ambiente DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING 0 - abilitato (impostazione predefinita)
1 - disabilitata

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.

Dimensioni della finestra di ricezione del flusso HTTP/2

  • Configura le dimensioni massime della finestra di ricezione del flusso HTTP/2.
  • Il valore predefinito è 16 MB. I valori inferiori a 65.535 sono bloccati a 65.535. Non esiste un limite massimo rigido, ma l'aumento di questa impostazione oltre l'impostazione predefinita è utile solo per le reti con velocità effettiva elevata e latenza elevata.
Nome della impostazione Valori
Variabile di ambiente DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE Numero intero (impostazione predefinita: 16 MB; minimo: 65.535)

Soglia di scalabilità della finestra di flusso HTTP/2

  • Configura il moltiplicatore che controlla l'aumento aggressivo della finestra di ricezione del flusso HTTP/2. I valori più elevati comportano una crescita più conservativa della finestra, riducendo così la velocità effettiva massima.
  • Il valore predefinito è 1.0. I valori inferiori a 0 vengono reimpostati sul valore predefinito. Non esiste un limite massimo rigido, ma i valori superano progressivamente la velocità effettiva predefinita per richiesta.

Annotazioni

Questa impostazione è destinata alla diagnostica avanzata e all'ottimizzazione interna. La maggior parte degli sviluppatori non deve modificarla.

Nome della impostazione Valori
Variabile di ambiente DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER Float (impostazione predefinita: 1,0; minimo: 0)

Propagazione dell'attività HTTP

Configura se la propagazione dell'attività di traccia distribuita è abilitata per HttpClient. Se abilitata, le richieste HTTP in uscita propagano le intestazioni del contesto di traccia (ad esempio traceparent) per strumenti di traccia distribuiti come OpenTelemetry.

Nome della impostazione Valori
runtimeconfig.json System.Net.Http.EnableActivityPropagation true - abilitato (impostazione predefinita)
false - disabilitata
Variabile di ambiente DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION 1 - abilitato (impostazione predefinita)
0 - disabilitata

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.

Timeout di connessione in sospeso al completamento della richiesta

Configura il timeout (in millisecondi) per il completamento di un tentativo di connessione in sospeso al termine della richiesta HTTP di avvio. Quando una connessione viene ancora stabilita dopo il completamento della richiesta, questo timeout determina quanto tempo attendere prima di abbandonare il tentativo di connessione.

  • Il valore predefinito è 5000 (5 secondi).
  • Impostare su per -1 attendere a tempo indeterminato fino al completamento della connessione.
  • Impostare su 0 per annullare la connessione in sospeso immediatamente al termine della richiesta.
  • Non esiste un limite massimo rigido, ma valori molto grandi sono poco pratici.
Nome della impostazione Valori
runtimeconfig.json System.Net.SocketsHttpHandler.PendingConnectionTimeoutOnRequestCompletion Integer (impostazione predefinita: 5000)
Variabile di ambiente DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_PENDINGCONNECTIONTIMEOUTONREQUESTCOMPLETION Integer (impostazione predefinita: 5000)

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.

Preautenticazione proxy

Se abilitata, SocketsHttpHandler invia Basic in modo proattivo le credenziali di autenticazione proxy alla prima richiesta invece di attendere una 407 risposta di richiesta dal proxy. Ciò è utile per i proxy che non inviano 407 risposte di richiesta.

Nome della impostazione Valori
runtimeconfig.json System.Net.Http.SocketsHttpHandler.ProxyPreAuthenticate false - disabilitato (impostazione predefinita)
true - abilitato
Variabile di ambiente DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_PROXYPREAUTHENTICATE 0 - disabilitato (impostazione predefinita)
1 - abilitato

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.

Numero massimo di connessioni per server

Configura il numero massimo di connessioni TCP simultanee che SocketsHttpHandler si apre a un singolo server. Il gestore ignora i valori minori di 1 e usa il valore predefinito.

  • Il valore predefinito è illimitato (int.MaxValue).
Nome della impostazione Valori
runtimeconfig.json System.Net.SocketsHttpHandler.MaxConnectionsPerServer Integer (impostazione predefinita: illimitato)
Variabile di ambiente DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_MAXCONNECTIONSPERSERVER Integer (impostazione predefinita: illimitato)

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.

Completamenti inline del socket

Configura se le continuazioni socket possono essere eseguite nel thread dell'evento invece di essere inviate a System.Threading.ThreadPool. L'abilitazione di questa impostazione può migliorare le prestazioni in alcuni scenari. Tuttavia, potrebbe peggiorare le prestazioni se il lavoro diSpendioso contiene il thread di I/O per più tempo del necessario.

Annotazioni

Testare per assicurarsi che l'abilitazione di questa impostazione consenta le prestazioni nello scenario specifico.

Nome della impostazione Valori
Variabile di ambiente DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS 0 - disabilitato (impostazione predefinita)
1 - abilitato

Conteggio thread socket

Configura il numero di thread usati per l'I/O socket. Se non ne viene eseguito l'override, il valore viene calcolato in base al numero di processori e all'architettura. I valori pratici si trovano nell'intervallo [1, ProcessorCount]. I valori al di fuori di questo intervallo non vengono rifiutati, ma è improbabile che migliorino le prestazioni.

Annotazioni

Questa impostazione è destinata a scenari di carico estremi. La maggior parte degli sviluppatori non deve modificarla.

Nome della impostazione Valori
Variabile di ambiente DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT Integer

IPv6

Configura se Internet Protocol versione 6 (IPv6) è disabilitato.

Nome della impostazione Valori
runtimeconfig.json System.Net.DisableIPv6 false - abilitato (impostazione predefinita)
true - disabilitata
Variabile di ambiente DOTNET_SYSTEM_NET_DISABLEIPV6 0 - abilitato (impostazione predefinita)
1 - disabilitata

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.

Ripresa della sessione TLS

Controllare se la ripresa della sessione TLS disabilita la ripresa della sessione TLS per SslStream. La ripresa della sessione consente alle riconnessioni TLS di ignorare un handshake completo riutilizzando i parametri di sessione negoziati in precedenza, riducendo la latenza.

Nome della impostazione Valori
runtimeconfig.json System.Net.Security.DisableTlsResume false - abilitato (impostazione predefinita)
true - disabilitata
Variabile di ambiente DOTNET_SYSTEM_NET_SECURITY_DISABLETLSRESUME 0 - abilitato (impostazione predefinita)
1 - disabilitata

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.

Download aiA del server

Se abilitato, il client TLS scarica automaticamente i certificati intermedi dagli URL dell'estensione AIA (Authority Information Access) nei certificati server. Ciò consente al client di compilare una catena di certificati completa anche quando il server non invia la catena completa.

Nome della impostazione Valori
runtimeconfig.json System.Net.Security.EnableServerAiaDownloads false - disabilitato (impostazione predefinita)
true - abilitato
Variabile di ambiente DOTNET_SYSTEM_NET_SECURITY_ENABLESERVERAIADOWNLOADS 0 - disabilitato (impostazione predefinita)
1 - abilitato

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.

Memorizzazione nella cache della configurazione QUIC

Disabilita la memorizzazione nella cache degli oggetti di configurazione MsQuic. Se abilitata (impostazione predefinita), il sistema memorizza nella cache e riutilizza gli oggetti di configurazione tra le connessioni, riducendo il sovraccarico della configurazione TLS e QUIC per le connessioni ripetute con gli stessi parametri.

Nome della impostazione Valori
runtimeconfig.json System.Net.Quic.DisableConfigurationCache false - Memorizzazione nella cache abilitata (impostazione predefinita)
true - Memorizzazione nella cache disabilitata
Variabile di ambiente DOTNET_SYSTEM_NET_QUIC_DISABLE_CONFIGURATION_CACHE 0 - Memorizzazione nella cache abilitata (impostazione predefinita)
1 - Memorizzazione nella cache disabilitata

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.

MsQuic locale dell'app (Windows)

Se abilitata, l'implementazione QUIC usa la libreria MsQuic dalla directory dell'applicazione anziché la libreria fornita dal sistema in bundle con l'assembly .NET.

Nome della impostazione Valori
runtimeconfig.json System.Net.Quic.AppLocalMsQuic false - usare MsQuic di sistema (impostazione predefinita)
true - usare MsQuic locale dell'app

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.

Buffer delle risposte del kernel HttpListener (Windows)

Se abilitata, HttpListener memorizza nel buffer i dati di risposta nel kernel tramite HTTP.sys. Il buffering del kernel può migliorare significativamente la velocità effettiva rispetto alle connessioni a latenza elevata per le applicazioni che usano operazioni di I/O sincrone o I/O asincrone con al massimo una scrittura in sospeso alla volta. Non abilitare questa impostazione per le applicazioni con più scritture in sospeso simultanee.

Annotazioni

L'abilitazione del buffer delle risposte del kernel può comportare un utilizzo maggiore della CPU e della memoria HTTP.sys.

Nome della impostazione Valori
runtimeconfig.json System.Net.HttpListener.EnableKernelResponseBuffering false - disabilitato (impostazione predefinita)
true - abilitato

Questa impostazione di configurazione non ha una proprietà MSBuild specifica. È tuttavia possibile aggiungere un elemento MSBuild RuntimeHostConfigurationOption in alternativa. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include. Per un esempio, vedere Proprietà di MSBuild.