HttpSysOptions Class


Contains the options used by HttpSys.

public ref class HttpSysOptions
public class HttpSysOptions
type HttpSysOptions = class
Public Class HttpSysOptions



Initializes a new HttpSysOptions.



Control whether synchronous input/output is allowed for the HttpContext.Request.Body and HttpContext.Response.Body. The default is false.


Http.Sys authentication settings. These may be modified at any time prior to disposing the listener.


Indicates how client certificates should be populated. The default is to allow a certificate without renegotiation. This does not change the netsh 'clientcertnegotiation' binding option which will need to be enabled for ClientCertificateMethod.AllowCertificate to resolve a certificate.


Enable buffering of response data in the Kernel. The default value is false. It should be used by an application doing synchronous I/O or by an application doing asynchronous I/O with no more than one outstanding write at a time, and can significantly improve throughput over high-latency connections. Applications that use asynchronous I/O and that may have more than one send outstanding at a time should not use this flag. Enabling this can results in higher CPU and memory usage by Http.Sys.


Attempt kernel-mode caching for responses with eligible headers. The response may not include Set-Cookie, Vary, or Pragma headers. It must include a Cache-Control header that's public and either a shared-max-age or max-age value, or an Expires header. The default is true.


Gets or sets a value that controls how http.sys reacts when rejecting requests due to throttling conditions - like when the request queue limit is reached. The default in http.sys is "Basic" which means http.sys is just resetting the TCP connection. IIS uses Limited as its default behavior which will result in sending back a 503 - Service Unavailable back to the client. This settings does not apply when attaching to an existing queue.


The maximum number of concurrent accepts. The default is 5 times the number of processors as returned by ProcessorCount.


Gets or sets the maximum number of concurrent connections to accept. Set -1 for infinite. Set to null to use the registry's machine-wide setting. The default value is null (machine-wide setting).


Gets or sets the maximum allowed size of any request body in bytes. When set to null, the maximum request body size is unlimited. This limit has no effect on upgraded connections which are always unlimited. This can be overridden per-request via IHttpMaxRequestBodySizeFeature. The default is set to 30,000,000 bytes, which is approximately 28.6MB.


Gets or sets the maximum number of requests that will be queued up in Http.Sys. This settings does not apply when attaching to an existing queue. The default is 1000.


This indicates whether the server is responsible for creating and configuring the request queue, or if it should attach to an existing queue. Most existing configuration options do not apply when attaching to an existing queue. The default is RequestQueueMode.Create.


The name of the Http.Sys request queue The default is null (Anonymous queue).


Gets or Sets if response body writes that fail due to client disconnects should throw exceptions or complete normally. The default is false (complete normally).


Exposes the Http.Sys timeout configurations. These may also be configured in the registry. These may be modified at any time prior to disposing the listener. These settings do not apply when attaching to an existing queue.


Inline request processing instead of dispatching to the threadpool.


The url prefixes to register with Http.Sys. These may be modified at any time prior to disposing the listener. When attached to an existing queue the prefixes are only used to compute PathBase for requests.


Configures request headers to use Latin1 encoding.

Applies to