Možnosti konfigurace modulu runtime pro sítě

Protokol HTTP/2

  • Konfiguruje, jestli je povolená podpora protokolu HTTP/2.
  • Pokud toto nastavení vynecháte, je povolena podpora protokolu HTTP/2. To je ekvivalentní nastavení hodnoty na true.
Název položky nastavení Hodnoty
runtimeconfig.json System.Net.Http.SocketsHttpHandler.Http2Support false -invalidní
true -zpřístupněný
Proměnná prostředí DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT 0 -invalidní
1 -zpřístupněný

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.

Protokol HTTP/3

  • Počínaje rozhraním .NET 7 je ve výchozím nastavení povolený protokol HTTP/3.
Název položky nastavení Hodnoty
runtimeconfig.json System.Net.SocketsHttpHandler.Http3Support false -Zakázán
true -zpřístupněný
Proměnná prostředí DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT 0 -invalidní
1 -zpřístupněný

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.

Vytvoření hlavního názvu služby (SPN) v HttpClient (.NET 6 a novější)

  • Má vliv na generování hlavních názvů služby (SPN) pro ověřování Kerberos a NTLM, pokud Host chybí hlavička a cíl není spuštěný na výchozím portu.
  • Verze .NET 6 a novější ve výchozím nastavení nezahrnují port do hlavního názvu služby (SPN). Chování je však možné konfigurovat.
Název položky nastavení Hodnoty
runtimeconfig.json System.Net.Http.UsePortInSpn true – zahrnout číslo portu do hlavního názvu služby (SPN), například HTTP/host:port
false – nezahrnujte do hlavního názvu služby (SPN) port, například HTTP/host
Proměnná prostředí DOTNET_SYSTEM_NET_HTTP_USEPORTINSPN 1 – zahrnout číslo portu do hlavního názvu služby (SPN), například HTTP/host:port
0 – nezahrnujte do hlavního názvu služby (SPN) port, například HTTP/host

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.

Dynamické škálování oken HTTP/2

  • Konfiguruje, jestli je algoritmus dynamického škálování oken HTTP/2 zakázaný pro řízení toku. Algoritmus je ve výchozím nastavení povolený.
  • Pokud je nastavená hodnota true, algoritmus dynamického škálování oken je zakázaný.
Název položky nastavení Hodnoty
runtimeconfig.json System.Net.SocketsHttpHandler.Http2FlowControl.DisableDynamicWindowSizing false – povoleno (výchozí)
true -invalidní
Proměnná prostředí DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING 0 – povoleno (výchozí)
1 -invalidní

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.

Velikost okna příjmu streamu HTTP/2

  • Nakonfiguruje maximální velikost okna příjmu datového proudu HTTP/2.
  • Výchozí hodnota je 16 MB. Hodnoty nižší než 65 535 jsou upínací na 65 535. Neexistuje žádný pevný horní limit, ale zvýšení tohoto nastavení nad rámec výchozího nastavení je výhodné jenom v sítích s vysokou propustností i vysokou latencí.
Název položky nastavení Hodnoty
Proměnná prostředí DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE Celé číslo (výchozí hodnota: 16 MB; minimálně: 65 535)

Prahová hodnota škálování okna streamu HTTP/2

  • Konfiguruje násobitel, který řídí, jak agresivně roste okno pro příjem datových proudů HTTP/2. Vyšší hodnoty vedou k konzervativnějšímu růstu oken, což snižuje propustnost ve špičce.
  • Výchozí hodnota je 1.0. Výchozí hodnoty nižší než 0 se resetují. Neexistuje žádný pevný horní limit, ale hodnoty mnohem vyšší než výchozí progresivní limit propustnosti požadavků.

Poznámka:

Toto nastavení je určené pro pokročilou diagnostiku a interní ladění. Většina vývojářů ho nemusí měnit.

Název položky nastavení Hodnoty
Proměnná prostředí DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER Float (výchozí hodnota: 1,0; minimum: 0)

Šíření aktivit HTTP

Konfiguruje, zda je povolené HttpClientšíření aktivity distribuovaného trasování . Pokud je tato možnost povolená, odchozí požadavky HTTP šíří hlavičky kontextu trasování (například traceparent) pro distribuované nástroje trasování, jako je OpenTelemetry.

Název položky nastavení Hodnoty
runtimeconfig.json System.Net.Http.EnableActivityPropagation true – povoleno (výchozí)
false -invalidní
Proměnná prostředí DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION 1 – povoleno (výchozí)
0 -invalidní

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.

Vypršení časového limitu připojení při dokončení požadavku

Nakonfiguruje časový limit (v milisekundách) pro dokončení čekajícího pokusu o připojení po dokončení jeho inicializace požadavku HTTP. Pokud se po dokončení požadavku stále navazuje připojení, tento časový limit určuje, jak dlouho se má čekat před opuštěním pokusu o připojení.

  • Výchozí hodnota je 5000 (5 sekund).
  • Nastavte na -1 neomezenou dobu čekání na dokončení připojení.
  • Nastavte na 0 zrušení čekajícího připojení okamžitě po dokončení požadavku.
  • Neexistuje žádný pevný horní limit, ale velmi velké hodnoty jsou nepraktické.
Název položky nastavení Hodnoty
runtimeconfig.json System.Net.SocketsHttpHandler.PendingConnectionTimeoutOnRequestCompletion Celé číslo (výchozí: 5000)
Proměnná prostředí DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_PENDINGCONNECTIONTIMEOUTONREQUESTCOMPLETION Celé číslo (výchozí: 5000)

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.

Předběžné ověřování proxy serveru

Pokud je tato možnost povolená, SocketsHttpHandler proaktivně odesílá Basic přihlašovací údaje pro ověření proxy serveru na prvním požadavku, a nečekejte na 407 odpověď na výzvu z proxy serveru. To je užitečné pro proxy servery, které neodesílají 407 odpovědi na výzvy.

Název položky nastavení Hodnoty
runtimeconfig.json System.Net.Http.SocketsHttpHandler.ProxyPreAuthenticate false – zakázáno (výchozí)
true -zpřístupněný
Proměnná prostředí DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_PROXYPREAUTHENTICATE 0 – zakázáno (výchozí)
1 -zpřístupněný

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.

Maximální počet připojení na server

Nakonfiguruje maximální počet souběžných připojení TCP, která SocketsHttpHandler se otevře na jednom serveru. Obslužná rutina ignoruje hodnoty menší než 1 a používá výchozí hodnotu.

  • Výchozí hodnota je neomezená (int.MaxValue).
Název položky nastavení Hodnoty
runtimeconfig.json System.Net.SocketsHttpHandler.MaxConnectionsPerServer Celé číslo (výchozí: neomezené)
Proměnná prostředí DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_MAXCONNECTIONSPERSERVER Celé číslo (výchozí: neomezené)

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.

Doplňování vložených soketů

Konfiguruje, zda se pokračování soketů smí spouštět ve vlákně událostí místo toho, aby se odesílaly do System.Threading.ThreadPoolprotokolu . Povolení tohoto nastavení může v některých scénářích zlepšit výkon. Pokud ale nákladná práce obsahuje vstupně-výstupní vlákno déle, než je potřeba, může snížit výkon.

Poznámka:

Otestujte, abyste měli jistotu, že povolení tohoto nastavení pomáhá výkonu ve vašem konkrétním scénáři.

Název položky nastavení Hodnoty
Proměnná prostředí DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS 0 – zakázáno (výchozí)
1 -zpřístupněný

Počet vláken soketů

Konfiguruje počet vláken používaných pro vstupně-výstupní operace soketu. Pokud nepřepíšete, hodnota se vypočítá na základě počtu procesorů a architektury. Praktické hodnoty jsou v rozsahu [1, ProcessorCount]. Hodnoty mimo tento rozsah nejsou odmítnuty, ale pravděpodobně nezlepší výkon.

Poznámka:

Toto nastavení je určené pro scénáře extrémního zatížení. Většina vývojářů ho nemusí měnit.

Název položky nastavení Hodnoty
Proměnná prostředí DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT Celočíselný datový typ

protokol IPv6

Konfiguruje, jestli je zakázaná protokol IPv6 (Internet Protocol verze 6).

Název položky nastavení Hodnoty
runtimeconfig.json System.Net.DisableIPv6 false – povoleno (výchozí)
true -invalidní
Proměnná prostředí DOTNET_SYSTEM_NET_DISABLEIPV6 0 – povoleno (výchozí)
1 -invalidní

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.

Obnovení relace protokolu TLS

Určuje, jestli obnovení relace PROTOKOLU TLS zakáže obnovení relace PROTOKOLU TLS pro SslStream. Obnovení relace umožňuje opětovné připojení protokolu TLS, aby přeskočí úplné handshake opakovaným použitím dříve vyjednaných parametrů relace, což snižuje latenci.

Název položky nastavení Hodnoty
runtimeconfig.json System.Net.Security.DisableTlsResume false – povoleno (výchozí)
true -invalidní
Proměnná prostředí DOTNET_SYSTEM_NET_SECURITY_DISABLETLSRESUME 0 – povoleno (výchozí)
1 -invalidní

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.

Stažení AIA serveru

Pokud je tato možnost povolená, klient TLS automaticky stáhne zprostředkující certifikáty z adres URL rozšíření AIA (Authority Information Access) v serverových certifikátech. To umožňuje klientovi vytvořit úplný řetěz certifikátů i v případě, že server neodesílá celý řetěz.

Název položky nastavení Hodnoty
runtimeconfig.json System.Net.Security.EnableServerAiaDownloads false – zakázáno (výchozí)
true -zpřístupněný
Proměnná prostředí DOTNET_SYSTEM_NET_SECURITY_ENABLESERVERAIADOWNLOADS 0 – zakázáno (výchozí)
1 -zpřístupněný

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.

Ukládání do mezipaměti konfigurace QUIC

Zakáže ukládání objektů konfigurace MsQuic do mezipaměti. Pokud je tato možnost povolená (výchozí), systém ukládá do mezipaměti a opakovaně používá konfigurační objekty napříč připojeními, což snižuje režii nastavení protokolu TLS a QUIC pro opakovaná připojení se stejnými parametry.

Název položky nastavení Hodnoty
runtimeconfig.json System.Net.Quic.DisableConfigurationCache false – ukládání do mezipaměti povoleno (výchozí)
true - ukládání do mezipaměti zakázáno
Proměnná prostředí DOTNET_SYSTEM_NET_QUIC_DISABLE_CONFIGURATION_CACHE 0 – ukládání do mezipaměti povoleno (výchozí)
1 - ukládání do mezipaměti zakázáno

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.

Místní aplikace MsQuic (Windows)

Pokud je tato možnost povolená, implementace QUIC používá knihovnu MsQuic z adresáře aplikace místo knihovny poskytované systémem, která je součástí sestavení .NET.

Název položky nastavení Hodnoty
runtimeconfig.json System.Net.Quic.AppLocalMsQuic false – použití systému MsQuic (výchozí)
true – použití místní aplikace MsQuic

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.

Ukládání odpovědí jádra HttpListener do vyrovnávací paměti (Windows)

Pokud je tato možnost povolená, HttpListener pomocí HTTP.sysse do vyrovnávací paměti zachozí data odpovědí v jádru. Ukládání do vyrovnávací paměti jádra může výrazně zlepšit propustnost připojení s vysokou latencí pro aplikace, které používají synchronní vstupně-výstupní operace nebo asynchronní vstupně-výstupní operace s maximálně jedním nevyřízeným zápisem najednou. Nepovolujte toto nastavení pro aplikace s více souběžnými nevyřízenými zápisy.

Poznámka:

Povolení ukládání odpovědí jádra do vyrovnávací paměti může vést k vyššímu využití procesoru a paměti HTTP.sys.

Název položky nastavení Hodnoty
runtimeconfig.json System.Net.HttpListener.EnableKernelResponseBuffering false – zakázáno (výchozí)
true -zpřístupněný

Toto nastavení konfigurace nemá konkrétní vlastnost MSBuild. Místo toho však můžete přidat RuntimeHostConfigurationOption položku NÁSTROJE MSBuild. Jako hodnotu atributu použijte název nastavení runtimeconfig.json.Include Příklad naleznete v tématu MSBuild vlastnosti.