KestrelServerOptions 类

定义

提供 Kestrel 特定功能的编程配置。

public ref class KestrelServerOptions
public class KestrelServerOptions
type KestrelServerOptions = class
Public Class KestrelServerOptions
继承
KestrelServerOptions

构造函数

KestrelServerOptions()

提供 Kestrel 特定功能的编程配置。

属性

AddServerHeader

获取或设置是否 Server 应在每个响应中包含 标头。

AllowAlternateSchemes

获取或设置一个值,该值控制如何 :scheme 验证 HTTP/2 和 HTTP/3 请求的 字段。

如果 false HTTP/2 和 HTTP/3 请求的“:scheme”字段必须与传输 (完全匹配,例如,HTTPs 用于 TLS 连接,http 表示非 TLS) 。 如果 true 这样,HTTP/2 和 HTTP/3 请求的“:scheme”字段可以设置为备用值,这将由“HttpRequest.Scheme”反映。 根据 https://datatracker.ietf.org/doc/html/rfc3986/#section-3.1,方案必须仍然有效。 仅在使用受信任的代理时启用此功能。 这可用于从备用协议转换的代理等方案。 请参阅 https://datatracker.ietf.org/doc/html/rfc7540#section-8.1.2.3。 启用此功能的应用程序应在使用之前验证是否提供了预期方案。

AllowHostHeaderOverride

在 HTTP/1.x 中,当请求目标采用绝对格式时 (请参阅 RFC 9112 第 3.2.2 节) ,例如

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

主机标头是冗余的。 事实上,RFC 说

当源服务器收到请求目标绝对格式的请求时,源服务器必须忽略接收的 Host 标头字段 (如果有任何) ,则改用 request-target 的主机信息。

但是,仍需检查请求目标和主机标头是否匹配,因为不匹配可能指示欺骗尝试(例如)。 将此属性设置为 true 会绕过检查,并使用请求目标中的值无条件地覆盖 Host 标头。

AllowResponseHeaderCompression

获取或设置一个值,该值控制是否允许动态压缩响应标头。 有关 HPack 动态标头压缩的安全注意事项的详细信息,请访问 https://tools.ietf.org/html/rfc7541#section-7

AllowSynchronousIO

获取或设置一个值,该值控制是否允许 和 使用 Request 同步 IO Response

ApplicationSchedulingMode

获取或设置一个值,该值确定 Kestrel 应如何计划用户回调。

ApplicationServices

启用侦听选项回调,以解析和使用应用程序在启动期间注册的服务。 通常由 UseKestrel () 初始化。

ConfigurationLoader

提供将在服务器启动时加载终结点的配置源。 默认为 null

DisableStringReuse

获取或设置一个值,该值控制是否将在请求之间重复使用具体化的字符串值;如果它们匹配,则为 ;如果字符串将始终重新分配,则为 。

EnableAltSvc
已过时.

控制是否从 HTTP/2 或 HTTP/3 的更低响应中返回“Alt-Svc”标头。

Limits

提供对请求限制选项的访问权限。

RequestHeaderEncodingSelector

获取或设置一个回调,该回调返回 Encoding 以解码指定请求标头名称的值或使用 null 默认 UTF8Encoding的 。

ResponseHeaderEncodingSelector

获取或设置一个回调,该回调返回 Encoding 以对指定的响应标头或尾部名称的值进行编码,或使用 null 默认 ASCIIEncoding的 。

方法

Configure()

创建用于设置 Kestrel 的配置加载程序。

Configure(IConfiguration)

创建配置加载程序,用于设置将 IConfiguration 作为输入的 Kestrel。 此配置的范围必须限定为 Kestrel 的配置节。 调用 Configure(IConfiguration, Boolean) 以启用动态终结点绑定更新。

Configure(IConfiguration, Boolean)

创建配置加载程序,用于设置将 IConfiguration 作为输入的 Kestrel。 此配置的范围必须限定为 Kestrel 的配置节。

ConfigureEndpointDefaults(Action<ListenOptions>)

指定要为每个新创建的终结点运行的配置操作。 再次调用此方法将替换之前的操作。

ConfigureHttpsDefaults(Action<HttpsConnectionAdapterOptions>)

指定要为每个新创建的 https 终结点运行的配置操作。 再次调用此方法将替换之前的操作。

Listen(EndPoint)

绑定到给定终结点。

Listen(EndPoint, Action<ListenOptions>)

绑定到给定终结点。 回调配置特定于终结点的设置。

Listen(IPAddress, Int32)

绑定到给定的 IP 地址和端口。

Listen(IPAddress, Int32, Action<ListenOptions>)

绑定到给定的 IP 地址和端口。 回调配置特定于终结点的设置。

Listen(IPEndPoint)

绑定到给定的 IP 终结点。

Listen(IPEndPoint, Action<ListenOptions>)

绑定到给定的 IP 地址和端口。 回调配置特定于终结点的设置。

ListenAnyIP(Int32)

使用 IPv6 [::] 侦听所有 IP,如果不支持 IPv6,则侦听 IPv4 0.0.0.0。

ListenAnyIP(Int32, Action<ListenOptions>)

使用 IPv6 [::] 侦听所有 IP,如果不支持 IPv6,则侦听 IPv4 0.0.0.0。

ListenHandle(UInt64)

打开套接字文件描述符。

ListenHandle(UInt64, Action<ListenOptions>)

打开套接字文件描述符。 回调配置特定于终结点的设置。

ListenLocalhost(Int32)

使用给定端口侦听 ::1 和 127.0.0.1。 这种类型的终结点不支持通过指定 0 来请求动态端口。

ListenLocalhost(Int32, Action<ListenOptions>)

使用给定端口侦听 ::1 和 127.0.0.1。 这种类型的终结点不支持通过指定 0 来请求动态端口。

ListenNamedPipe(String)

绑定到给定的命名管道。

ListenNamedPipe(String, Action<ListenOptions>)

绑定到给定的命名管道。 指定回调以配置特定于终结点的设置。

ListenUnixSocket(String)

绑定到给定的 Unix 域套接字路径。

ListenUnixSocket(String, Action<ListenOptions>)

绑定到给定的 Unix 域套接字路径。 指定回调以配置特定于终结点的设置。

扩展方法

UseSystemd(KestrelServerOptions)

打开文件描述符 (开始,SD_LISTEN_FDS_START) 基于系统套接字的激活逻辑初始化(如果可用)。

UseSystemd(KestrelServerOptions, Action<ListenOptions>)

打开文件描述符 (开始,SD_LISTEN_FDS_START) 基于系统套接字的激活逻辑初始化(如果可用)。 指定回调以配置特定于终结点的设置。

适用于