From 2cc15a96677791c4224ade3f9e3c499a3f95e668 Mon Sep 17 00:00:00 2001 From: Sourabh Shirhatti Date: Mon, 7 Oct 2019 13:05:57 -0700 Subject: [PATCH] Add HttpSys docs for 3.1 (#14645) * Add RequestQueueName * Update aspnetcore/fundamentals/servers/httpsys.md Co-Authored-By: Luke Latham <1622880+guardrex@users.noreply.github.com> * Update to HTTP.sys * Add request queue mode --- aspnetcore/fundamentals/servers/httpsys.md | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/aspnetcore/fundamentals/servers/httpsys.md b/aspnetcore/fundamentals/servers/httpsys.md index 2d3bf80d16..b56445eb0c 100644 --- a/aspnetcore/fundamentals/servers/httpsys.md +++ b/aspnetcore/fundamentals/servers/httpsys.md @@ -5,7 +5,7 @@ description: Learn about HTTP.sys, a web server for ASP.NET Core on Windows. Bui monikerRange: '>= aspnetcore-2.1' ms.author: riande ms.custom: mvc -ms.date: 08/27/2019 +ms.date: 09/26/2019 uid: fundamentals/servers/httpsys --- # HTTP.sys web server implementation in ASP.NET Core @@ -102,7 +102,27 @@ Additional HTTP.sys configuration is handled through [registry settings](https:/ **HTTP.sys options** -::: moniker range=">= aspnetcore-3.0" +::: moniker range=">= aspnetcore-3.1" + +| Property | Description | Default | +| -------- | ----------- | :-----: | +| [AllowSynchronousIO](xref:Microsoft.AspNetCore.Server.HttpSys.HttpSysOptions.AllowSynchronousIO) | Control whether synchronous input/output is allowed for the `HttpContext.Request.Body` and `HttpContext.Response.Body`. | `false` | +| [Authentication.AllowAnonymous](xref:Microsoft.AspNetCore.Server.HttpSys.AuthenticationManager.AllowAnonymous) | Allow anonymous requests. | `true` | +| [Authentication.Schemes](xref:Microsoft.AspNetCore.Server.HttpSys.AuthenticationManager.Schemes) | Specify the allowed authentication schemes. May be modified at any time prior to disposing the listener. Values are provided by the [AuthenticationSchemes enum](xref:Microsoft.AspNetCore.Server.HttpSys.AuthenticationSchemes): `Basic`, `Kerberos`, `Negotiate`, `None`, and `NTLM`. | `None` | +| [EnableResponseCaching](xref:Microsoft.AspNetCore.Server.HttpSys.HttpSysOptions.EnableResponseCaching) | Attempt [kernel-mode](/windows-hardware/drivers/gettingstarted/user-mode-and-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. | `true` | +| | The maximum number of concurrent accepts. | 5 × [Environment.
ProcessorCount](xref:System.Environment.ProcessorCount) | +| | The maximum number of concurrent connections to accept. Use `-1` for infinite. Use `null` to use the registry's machine-wide setting. | `null`
(unlimited) | +| | See the MaxRequestBodySize section. | 30000000 bytes
(~28.6 MB) | +| | The maximum number of requests that can be queued. | 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. | `RequestQueueMode.Create` | +| | The name of the HTTP.sys request queue. | `null` (Anonymous queue) | +| | Indicate if response body writes that fail due to client disconnects should throw exceptions or complete normally. | `false`
(complete normally) | +| | Expose the HTTP.sys configuration, which may also be configured in the registry. Follow the API links to learn more about each setting, including default values:
  • [TimeoutManager.DrainEntityBody](xref:Microsoft.AspNetCore.Server.HttpSys.TimeoutManager.DrainEntityBody) – Time allowed for the HTTP Server API to drain the entity body on a Keep-Alive connection.
  • [TimeoutManager.EntityBody](xref:Microsoft.AspNetCore.Server.HttpSys.TimeoutManager.EntityBody) – Time allowed for the request entity body to arrive.
  • [TimeoutManager.HeaderWait](xref:Microsoft.AspNetCore.Server.HttpSys.TimeoutManager.HeaderWait) – Time allowed for the HTTP Server API to parse the request header.
  • [TimeoutManager.IdleConnection](xref:Microsoft.AspNetCore.Server.HttpSys.TimeoutManager.IdleConnection) – Time allowed for an idle connection.
  • [TimeoutManager.MinSendBytesPerSecond](xref:Microsoft.AspNetCore.Server.HttpSys.TimeoutManager.MinSendBytesPerSecond) – The minimum send rate for the response.
  • [TimeoutManager.RequestQueue](xref:Microsoft.AspNetCore.Server.HttpSys.TimeoutManager.RequestQueue) – Time allowed for the request to remain in the request queue before the app picks it up.
| | +| | Specify the to register with HTTP.sys. The most useful is [UrlPrefixCollection.Add](xref:Microsoft.AspNetCore.Server.HttpSys.UrlPrefixCollection.Add*), which is used to add a prefix to the collection. These may be modified at any time prior to disposing the listener. | | + +::: moniker-end + +::: moniker range="= aspnetcore-3.0" | Property | Description | Default | | -------- | ----------- | :-----: |