Freigeben über


KestrelServerOptions Klasse

Definition

Stellt die programmgesteuerte Konfiguration von Kestrel-spezifischen Features bereit.

public ref class KestrelServerOptions
public class KestrelServerOptions
type KestrelServerOptions = class
Public Class KestrelServerOptions
Vererbung
KestrelServerOptions

Konstruktoren

KestrelServerOptions()

Stellt die programmgesteuerte Konfiguration von Kestrel-spezifischen Features bereit.

Eigenschaften

AddServerHeader

Ruft ab oder legt fest, ob der Server Header in jede Antwort eingeschlossen werden soll.

AllowAlternateSchemes

Ruft einen Wert ab, der steuert, wie das :scheme Feld für HTTP/2- und HTTP/3-Anforderungen überprüft wird, oder legt diesen fest.

Wenn false dann das Feld ":scheme" für HTTP/2- und HTTP/3-Anforderungen genau mit dem Transport übereinstimmen muss (z. B. https für TLS-Verbindungen, HTTP für Nicht-TLS-Verbindungen). Wenn true dann das Feld ":scheme" für HTTP/2- und HTTP/3-Anforderungen auf alternative Werte festgelegt werden kann, wird dies durch "HttpRequest.Scheme" wiedergegeben. Das Schema muss nach wie vor https://datatracker.ietf.org/doc/html/rfc3986/#section-3.1gültig sein. Aktivieren Sie dies nur, wenn Sie mit einem vertrauenswürdigen Proxy arbeiten. Dies kann in Szenarien wie Proxys verwendet werden, die aus alternativen Protokollen konvertieren. Siehe https://datatracker.ietf.org/doc/html/rfc7540#section-8.1.2.3. Anwendungen, die dies aktivieren, sollten überprüfen, ob ein erwartetes Schema bereitgestellt wird, bevor es verwendet wird.

AllowHostHeaderOverride

In HTTP/1.x, wenn sich ein Anforderungsziel in absoluter Form befindet (siehe RFC 9112 Abschnitt 3.2.2), z. B.

GET http://www.example.com/path/to/index.html HTTP/1.1

Der Hostheader ist redundant. Tatsächlich sagt der RFC

Wenn ein Ursprungsserver eine Anforderung mit einer absoluten Form von Request-Target empfängt, MUSS der Ursprungsserver das empfangene Hostheaderfeld (falls vorhanden) ignorieren und stattdessen die Hostinformationen des Anforderungsziels verwenden.

Es ist jedoch weiterhin sinnvoll, zu überprüfen, ob das Anforderungsziel und der Hostheader übereinstimmen, da ein Konflikt beispielsweise auf einen Spoofingversuch hinweisen kann. Wenn Sie diese Eigenschaft auf true festlegen, wird die Überprüfung umgangen, und der Hostheader wird bedingungslos mit dem Wert aus dem Anforderungsziel überschrieben.

AllowResponseHeaderCompression

Ruft einen Wert ab, der steuert, ob die dynamische Komprimierung von Antwortheadern zulässig ist, oder legt diesen fest. Weitere Informationen zu den Sicherheitsüberlegungen der dynamischen HPack-Headerkomprimierung finden Sie unter https://tools.ietf.org/html/rfc7541#section-7.

AllowSynchronousIO

Ruft einen Wert ab, der steuert, ob synchrone E/A-Vorgänge für die und zulässig sind, oder legt diesen Request fest. Response

ApplicationSchedulingMode

Ruft einen Wert ab, der bestimmt, wie Kestrel Benutzerrückrufe planen soll, oder legt diesen fest.

ApplicationServices

Ermöglicht den Rückruf der Listenoptionen, um dienste aufzulösen und zu verwenden, die während des Starts von der Anwendung registriert wurden. In der Regel durch UseKestrel() initialisiert.

ConfigurationLoader

Stellt eine Konfigurationsquelle bereit, aus der Endpunkte beim Start des Servers geladen werden. Der Standardwert lautet null.

DisableStringReuse

Ruft einen Wert ab, der steuert, ob die materialisierten Zeichenfolgenwerte in Anforderungen wiederverwendet werden, oder legt diesen fest. , wenn sie übereinstimmen oder wenn die Zeichenfolgen immer neu zugeordnet werden.

EnableAltSvc
Veraltet.

Steuert, ob der "Alt-Svc"-Header von einer HTTP/2-Antwort oder einer niedrigeren Antwort für HTTP/3 zurückgegeben werden soll.

Limits

Bietet Zugriff auf Optionen für anforderungslimits.

RequestHeaderEncodingSelector

Ruft einen Rückruf ab, der zurückgibt Encoding , um den Wert für den angegebenen Anforderungsheadernamen zu decodieren oder null den Standard UTF8Encodingzu verwenden, oder legt diesen fest.

ResponseHeaderEncodingSelector

Ruft einen Rückruf ab oder legt diesen fest, der zurückgibt Encoding , um den Wert für den angegebenen Antwortheader oder den angegebenen Trailernamen zu codieren oder null den Standard ASCIIEncodingzu verwenden.

Methoden

Configure()

Erstellt ein Konfigurationsladeprogramm zum Einrichten von Kestrel.

Configure(IConfiguration)

Erstellt ein Konfigurationsladeprogramm für das Einrichten von Kestrel, was IConfiguration als Eingabe erfordert. Diese Konfiguration muss auf den Konfigurationsabschnitt für Kestrel festgelegt werden. Rufen Sie auf Configure(IConfiguration, Boolean) , um dynamische Endpunktbindungsupdates zu aktivieren.

Configure(IConfiguration, Boolean)

Erstellt ein Konfigurationsladeprogramm für das Einrichten von Kestrel, was IConfiguration als Eingabe erfordert. Diese Konfiguration muss auf den Konfigurationsabschnitt für Kestrel festgelegt werden.

ConfigureEndpointDefaults(Action<ListenOptions>)

Gibt eine Konfigurationsaktion an, die für jeden neu erstellten Endpunkt ausgeführt werden soll. Durch erneutes Aufrufen dieses Vorgangs wird die vorherige Aktion ersetzt.

ConfigureHttpsDefaults(Action<HttpsConnectionAdapterOptions>)

Gibt eine Konfigurationsaktion an, die für jeden neu erstellten HTTPS-Endpunkt ausgeführt werden soll. Durch erneutes Aufrufen dieses Vorgangs wird die vorherige Aktion ersetzt.

Listen(EndPoint)

Binden Sie an den angegebenen Endpunkt.

Listen(EndPoint, Action<ListenOptions>)

Binden Sie an den angegebenen Endpunkt. Der Rückruf konfiguriert endpunktspezifische Einstellungen.

Listen(IPAddress, Int32)

Binden Sie an die angegebene IP-Adresse und den angegebenen Port.

Listen(IPAddress, Int32, Action<ListenOptions>)

Binden Sie an die angegebene IP-Adresse und den angegebenen Port. Der Rückruf konfiguriert endpunktspezifische Einstellungen.

Listen(IPEndPoint)

Binden sie an den angegebenen IP-Endpunkt.

Listen(IPEndPoint, Action<ListenOptions>)

Binden Sie an die angegebene IP-Adresse und den angegebenen Port. Der Rückruf konfiguriert endpunktspezifische Einstellungen.

ListenAnyIP(Int32)

Lauscht mit IPv6 [::] oder IPv4 0.0.0.0.0 auf alle IP-Adressen, wenn IPv6 nicht unterstützt wird.

ListenAnyIP(Int32, Action<ListenOptions>)

Lauscht mit IPv6 [::] oder IPv4 0.0.0.0.0 auf alle IP-Adressen, wenn IPv6 nicht unterstützt wird.

ListenHandle(UInt64)

Öffnen Sie einen Socketdateideskriptor.

ListenHandle(UInt64, Action<ListenOptions>)

Öffnen Sie einen Socketdateideskriptor. Der Rückruf konfiguriert endpunktspezifische Einstellungen.

ListenLocalhost(Int32)

Lauscht auf ::1 und 127.0.0.1 mit dem angegebenen Port. Das Anfordern eines dynamischen Ports durch Angabe von 0 wird für diesen Endpunkttyp nicht unterstützt.

ListenLocalhost(Int32, Action<ListenOptions>)

Lauscht auf ::1 und 127.0.0.1 mit dem angegebenen Port. Das Anfordern eines dynamischen Ports durch Angabe von 0 wird für diesen Endpunkttyp nicht unterstützt.

ListenNamedPipe(String)

Binden sie an die angegebene Named Pipe.

ListenNamedPipe(String, Action<ListenOptions>)

Binden sie an die angegebene Named Pipe. Geben Sie den Rückruf an, um endpunktspezifische Einstellungen zu konfigurieren.

ListenUnixSocket(String)

Binden Sie an den angegebenen Unix-Domänensocketpfad.

ListenUnixSocket(String, Action<ListenOptions>)

Binden Sie an den angegebenen Unix-Domänensocketpfad. Geben Sie den Rückruf an, um endpunktspezifische Einstellungen zu konfigurieren.

Erweiterungsmethoden

UseSystemd(KestrelServerOptions)

Öffnen Sie Dateideskriptoren (ab SD_LISTEN_FDS_START), die von systemd socketbasierter Aktivierungslogik initialisiert werden, falls verfügbar.

UseSystemd(KestrelServerOptions, Action<ListenOptions>)

Öffnen Sie Dateideskriptoren (ab SD_LISTEN_FDS_START), die von systemd socketbasierter Aktivierungslogik initialisiert werden, falls verfügbar. Geben Sie den Rückruf an, um endpunktspezifische Einstellungen zu konfigurieren.

Gilt für: