Freigeben über


Laufzeitkonfigurationsoptionen für Netzwerke

HTTP/2-Protokoll

  • Konfiguriert, ob die Unterstützung für das HTTP/2-Protokoll aktiviert ist.
  • Wenn Sie diese Einstellung weglassen, ist die Unterstützung für das HTTP/2-Protokoll aktiviert. Dies entspricht der Einstellung des Werts auf true.
Einstellungsname Werte
runtimeconfig.json System.Net.Http.SocketsHttpHandler.Http2Support false – deaktiviert
true – aktiviert
Umgebungsvariable DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT 0 – deaktiviert
1 – aktiviert

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.

HTTP/3-Protokoll

  • Ab .NET 7 ist HTTP/3 standardmäßig aktiviert.
Einstellungsname Werte
runtimeconfig.json System.Net.SocketsHttpHandler.Http3Support false -Deaktiviert
true – aktiviert
Umgebungsvariable DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT 0 – deaktiviert
1 – aktiviert

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.

SPN-Erstellung in HttpClient (.NET 6 und höher)

  • Wirkt sich auf die Generierung von Dienstprinzipalnamen (SPN) für Kerberos- und NTLM-Authentifizierung aus, wenn Host der Header fehlt und das Ziel nicht auf dem Standardport ausgeführt wird.
  • .NET 6 und höhere Versionen enthalten nicht standardmäßig den Port im SPN. Das Verhalten kann jedoch konfiguriert werden.
Einstellungsname Werte
runtimeconfig.json System.Net.Http.UsePortInSpn true - Portnummer in SPN einschließen, z. B. HTTP/host:port
false - Schließen Sie beispielsweise keinen Port in SPN ein, HTTP/host
Umgebungsvariable DOTNET_SYSTEM_NET_HTTP_USEPORTINSPN 1 - Portnummer in SPN einschließen, z. B. HTTP/host:port
0 - Schließen Sie beispielsweise keinen Port in SPN ein, HTTP/host

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.

DYNAMISCHE Fensterskalierung von HTTP/2

  • Konfiguriert, ob der dynamische HTTP/2-Fensterskalierungsalgorithmus für die Flusssteuerung deaktiviert ist. Der Algorithmus ist standardmäßig aktiviert.
  • Bei Festlegung auf true" ist der Algorithmus für die dynamische Fensterskalierung deaktiviert.
Einstellungsname Werte
runtimeconfig.json System.Net.SocketsHttpHandler.Http2FlowControl.DisableDynamicWindowSizing false - aktiviert (Standard)
true – deaktiviert
Umgebungsvariable DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING 0 - aktiviert (Standard)
1 – deaktiviert

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.

HTTP/2-Datenstrom empfangen Fenstergröße

  • Konfiguriert die maximale Größe des HTTP/2-Datenstrom-Empfangsfensters.
  • Der Standardwert ist 16 MB. Die Werte unter 65.535 werden auf 65.535 geklemmt. Es gibt keine harte Obergrenze, aber das Erhöhen dieser Einstellung über den Standardwert hinaus ist nur für Netzwerke nützlich, die sowohl hohen Durchsatz als auch hohe Latenz aufweisen.
Einstellungsname Werte
Umgebungsvariable DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE Ganze Zahl (Standard: 16 MB; Minimum: 65.535)

HTTP/2-Datenstromfenster-Skalierungsschwellenwert

  • Konfiguriert den Multiplikator, der steuert, wie aggressiv das HTTP/2-Stream-Empfangen-Fenster wächst. Höhere Werte führen zu einem konservativeren Fensterwachstum, wodurch der Spitzendurchsatz reduziert wird.
  • Der Standardwert ist 1.0. Werte unter 0 werden auf den Standardwert zurückgesetzt. Es gibt keine harte Obergrenze, aber Werte weit über dem standardmäßigen progressiven Grenzwert pro Anforderungsdurchsatz.

Hinweis

Diese Einstellung ist für erweiterte Diagnose und interne Optimierung vorgesehen. Die meisten Entwickler müssen sie nicht ändern.

Einstellungsname Werte
Umgebungsvariable DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER Float (Standard: 1.0; Minimum: 0)

HTTP-Aktivitätsverteilung

Konfiguriert, ob die Verteilung verteilter Ablaufverfolgungsaktivitäten aktiviert HttpClientist. Wenn diese Option aktiviert ist, verteilen ausgehende HTTP-Anforderungen Ablaufverfolgungskontextheader (z traceparent. B. ) für verteilte Ablaufverfolgungstools wie OpenTelemetry.

Einstellungsname Werte
runtimeconfig.json System.Net.Http.EnableActivityPropagation true - aktiviert (Standard)
false – deaktiviert
Umgebungsvariable DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION 1 - aktiviert (Standard)
0 – deaktiviert

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.

Timeout für ausstehende Verbindung beim Abschluss der Anforderung

Konfiguriert das Timeout (in Millisekunden) für das Abschließen eines ausstehenden Verbindungsversuchs, nachdem die initiierende HTTP-Anforderung abgeschlossen wurde. Wenn nach Abschluss der Anforderung noch eine Verbindung hergestellt wird, bestimmt dieses Timeout, wie lange gewartet werden soll, bevor der Verbindungsversuch abgebrochen wird.

  • Standardwert ist 5000 (5 Sekunden).
  • Legen Sie fest, dass sie -1 auf unbestimmte Zeit warten soll, bis die Verbindung abgeschlossen ist.
  • Legen Sie fest, 0 dass die ausstehende Verbindung sofort abgebrochen wird, wenn die Anforderung abgeschlossen ist.
  • Es gibt keine harte Obergrenze, aber sehr große Werte sind unpraktisch.
Einstellungsname Werte
runtimeconfig.json System.Net.SocketsHttpHandler.PendingConnectionTimeoutOnRequestCompletion Ganze Zahl (Standard: 5000)
Umgebungsvariable DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_PENDINGCONNECTIONTIMEOUTONREQUESTCOMPLETION Ganze Zahl (Standard: 5000)

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.

Proxyvorauthentifizierung

Wenn diese Option aktiviert ist, sendet Basic proaktiv Proxyauthentifizierungsanmeldeinformationen für die erste Anforderung, SocketsHttpHandler anstatt auf eine 407 Abfrageantwort vom Proxy zu warten. Dies ist nützlich für Proxys, die keine Abfrageantworten senden 407 .

Einstellungsname Werte
runtimeconfig.json System.Net.Http.SocketsHttpHandler.ProxyPreAuthenticate false - deaktiviert (Standard)
true – aktiviert
Umgebungsvariable DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_PROXYPREAUTHENTICATE 0 - deaktiviert (Standard)
1 – aktiviert

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.

Maximale Anzahl von Verbindungen pro Server

Konfiguriert die maximale Anzahl gleichzeitiger TCP-Verbindungen, die SocketsHttpHandler mit einem einzelnen Server geöffnet werden. Der Handler ignoriert Werte kleiner als 1 und verwendet den Standardwert.

  • Der Standardwert ist auf unbegrenzt (int.MaxValue).
Einstellungsname Werte
runtimeconfig.json System.Net.SocketsHttpHandler.MaxConnectionsPerServer Ganze Zahl (Standard: unbegrenzt)
Umgebungsvariable DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_MAXCONNECTIONSPERSERVER Ganze Zahl (Standard: unbegrenzt)

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.

Socket-Inline-Fertigstellungen

Konfiguriert, ob Socketfortsetzungen im Ereignisthread ausgeführt werden dürfen, anstatt an den System.Threading.ThreadPool. Wenn Sie diese Einstellung aktivieren, kann die Leistung in einigen Szenarien verbessert werden. Es kann jedoch die Leistung beeinträchtigen, wenn teure Arbeit den E/A-Thread länger als erforderlich hält.

Hinweis

Testen Sie, um sicherzustellen, dass die Aktivierung dieser Einstellung die Leistung in Ihrem spezifischen Szenario unterstützt.

Einstellungsname Werte
Umgebungsvariable DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS 0 - deaktiviert (Standard)
1 – aktiviert

Socketthreadanzahl

Konfiguriert die Anzahl der Threads, die für Socket-E/A verwendet werden. Wenn der Wert nicht außer Kraft gesetzt wird, wird der Wert basierend auf der Prozessoranzahl und -architektur berechnet. Praktische Werte befinden sich im Bereich [1, ProcessorCount]. Werte außerhalb dieses Bereichs werden nicht abgelehnt, sind aber unwahrscheinlich, dass die Leistung verbessert wird.

Hinweis

Diese Einstellung ist für Extreme Load-Szenarien vorgesehen. Die meisten Entwickler müssen sie nicht ändern.

Einstellungsname Werte
Umgebungsvariable DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT Integer

IPv6

Konfiguriert, ob die Internetprotokollversion 6 (IPv6) deaktiviert ist.

Einstellungsname Werte
runtimeconfig.json System.Net.DisableIPv6 false - aktiviert (Standard)
true – deaktiviert
Umgebungsvariable DOTNET_SYSTEM_NET_DISABLEIPV6 0 - aktiviert (Standard)
1 – deaktiviert

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.

TLS-Sitzungswiederaufnahme

Steuern, ob die Wiederaufnahme der TLS-Sitzung die Wiederaufnahme der TLS-Sitzung deaktiviert SslStream. Die Wiederaufnahme von Sitzungen ermöglicht TLS-Wiederverbindungen, einen vollständigen Handshake zu überspringen, indem zuvor ausgehandelte Sitzungsparameter wiederverwenden, wodurch die Latenz reduziert wird.

Einstellungsname Werte
runtimeconfig.json System.Net.Security.DisableTlsResume false - aktiviert (Standard)
true – deaktiviert
Umgebungsvariable DOTNET_SYSTEM_NET_SECURITY_DISABLETLSRESUME 0 - aktiviert (Standard)
1 – deaktiviert

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.

Server-AIA-Downloads

Wenn diese Option aktiviert ist, lädt der TLS-Client automatisch Zwischenzertifikate aus AIA-Erweiterungs-URLs (Authority Information Access) in Serverzertifikaten herunter. Dadurch kann der Client auch dann eine vollständige Zertifikatkette erstellen, wenn der Server die vollständige Kette nicht sendet.

Einstellungsname Werte
runtimeconfig.json System.Net.Security.EnableServerAiaDownloads false - deaktiviert (Standard)
true – aktiviert
Umgebungsvariable DOTNET_SYSTEM_NET_SECURITY_ENABLESERVERAIADOWNLOADS 0 - deaktiviert (Standard)
1 – aktiviert

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.

QUIC-Konfigurationszwischenspeicherung

Deaktiviert das Zwischenspeichern von MsQuic-Konfigurationsobjekten. Wenn diese Option aktiviert ist (Standard), speichert und verwendet das System Konfigurationsobjekte über Verbindungen hinweg, wodurch der Mehraufwand für tls- und QUIC-Setup für wiederholte Verbindungen mit denselben Parametern reduziert wird.

Einstellungsname Werte
runtimeconfig.json System.Net.Quic.DisableConfigurationCache false - Zwischenspeicherung aktiviert (Standard)
true - Zwischenspeicherung deaktiviert
Umgebungsvariable DOTNET_SYSTEM_NET_QUIC_DISABLE_CONFIGURATION_CACHE 0 - Zwischenspeicherung aktiviert (Standard)
1 - Zwischenspeicherung deaktiviert

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.

App-local MsQuic (Windows)

Wenn diese Option aktiviert ist, verwendet die QUIC-Implementierung die MsQuic-Bibliothek aus dem Anwendungsverzeichnis anstelle der vom System bereitgestellten Bibliothek, die mit der .NET-Assembly gebündelt ist.

Einstellungsname Werte
runtimeconfig.json System.Net.Quic.AppLocalMsQuic false - System MsQuic verwenden (Standard)
true - Verwenden von app-local MsQuic

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.

HttpListener-Kernelantwortpufferung (Windows)

Wenn diese Option aktiviert ist, HttpListener werden Die Antwortdaten im Kernel über HTTP.sysgepuffert. Die Kernelpufferung kann den Durchsatz über Verbindungen mit hoher Latenz für Anwendungen erheblich verbessern, die synchrone E/A oder asynchrone E/A mit höchstens einem herausragenden Schreibvorgang gleichzeitig verwenden. Aktivieren Sie diese Einstellung nicht für Anwendungen mit mehreren gleichzeitigen ausstehenden Schreibvorgängen.

Hinweis

Das Aktivieren des Kernelantwortpuffers kann zu einer höheren CPU- und Speicherauslastung durch HTTP.sysführen.

Einstellungsname Werte
runtimeconfig.json System.Net.HttpListener.EnableKernelResponseBuffering false - deaktiviert (Standard)
true – aktiviert

Diese Konfigurationseinstellung verfügt nicht über eine bestimmte MSBuild-Eigenschaft. Sie können jedoch stattdessen ein RuntimeHostConfigurationOption-MSBuild-Element hinzufügen. Verwenden Sie den Einstellungsnamen runtimeconfig.json als Wert des Include-Attributs. Ein Beispiel finden Sie unter MSBuild-Eigenschaften.