diff --git a/src/Servers/HttpSys/README.md b/src/Servers/HttpSys/README.md index 380919f82868..e51c8b2fad50 100644 --- a/src/Servers/HttpSys/README.md +++ b/src/Servers/HttpSys/README.md @@ -1,4 +1,42 @@ -HttpSysServer -============= +# HttpSys -This repo contains a web server for ASP.NET Core based on the Windows [Http Server API](https://msdn.microsoft.com/en-us/library/windows/desktop/aa364510.aspx). +ASP.NET Core HttpSys Web Server is a web server that uses the [Windows Hypertext Transfer Protocol Stack](https://docs.microsoft.com/iis/get-started/introduction-to-iis/introduction-to-iis-architecture#hypertext-transfer-protocol-stack-httpsys). + +Documentation for ASP.NET Core HttpSys can be found in the [ASP.NET Core HTTP.sys Docs](https://docs.microsoft.com/aspnet/core/fundamentals/servers/httpsys). + +## Description + +This folder contains all relevant code for the HttpSys Web Server implementation. + +- [src/](src/): Contains all production code for the HttpSys Web Server. +- [src/NativeInterop/](src/NativeInterop): Contains the native interop layer between managed and native code. +- [src/RequestProcessing/](src/RequestProcessing): Contains request and response processing code. +- [samples/](samples/): Contains samples showing how to use HTTP.sys. + +## Development Setup + +### Build + +HTTP.sys can only be used on Windows. + +To build this specific project from source, you can follow the instructions [on building a subset of the code](https://github.com/dotnet/aspnetcore/blob/main/docs/BuildFromSource.md#building-a-subset-of-the-code). + +Or for the less detailed explanation, run the following command inside this directory. +```powershell +> ./build.cmd +``` + +### Test + +To run the tests for this project, you can [run the tests on the command line](https://github.com/dotnet/aspnetcore/blob/main/docs/BuildFromSource.md#running-tests-on-command-line) in this directory. + +Or for the less detailed explanation, run the following command inside this directory. +```powershell +> ./build.cmd -t +``` + +You can also run project specific tests by running `dotnet test` in the `tests` directory next to the `src` directory of the project. + +## More Information + +For more information, see the [ASP.NET Core README](../../../README.md). diff --git a/src/Servers/IIS/README.md b/src/Servers/IIS/README.md new file mode 100644 index 000000000000..abd9ca262e62 --- /dev/null +++ b/src/Servers/IIS/README.md @@ -0,0 +1,55 @@ +# IIS + +ASP.NET Core IIS Web Server is a flexible secure managed Web Server to be hosted with IIS on Windows. + +Documentation for ASP.NET Core IIS can be found in the [ASP.NET Core IIS Docs](https://docs.microsoft.com/aspnet/core/host-and-deploy/iis). + +## Description + +This folder contains all relevant code for the IIS Web Server implementation. + +There are two modes for hosting application with IIS: in-process and out-of-process. In-process will run all managed code inside of the IIS worker process, while out-of-process will use IIS as a reverse-proxy to a dotnet process running Kestrel. + +The following contains a description of the sub-directories. + +- [AspNetCoreModuleV2/](AspNetCoreModuleV2/): Contains all native code that is part of the [ASP.NET Core Module/](https://docs.microsoft.com/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore-5.0). +- [AspNetCoreModuleV2/AspNetCore/](AspNetCoreModuleV2/AspNetCore/): Contains the ASP.NET Core Module shim, a minimal layer for IIS to interact with the in-process and out-of-process modules. +- [AspNetCoreModuleV2/CommonLib/](AspNetCoreModuleV2/CommonLib/): Contains common code shared between all native components. +- [AspNetCoreModuleV2/CommonLibTests/](AspNetCoreModuleV2/CommonLibTests/): Contains native tests for the ASP.NET Core Module. +- [AspNetCoreModuleV2/IISLib/](AspNetCoreModuleV2/IISLib/): Contains common code for interactions with IIS. +- [AspNetCoreModuleV2/InProcessRequestHandler/](AspNetCoreModuleV2/InProcessRequestHandler/): Contains native code for in-process hosting. +- [AspNetCoreModuleV2/OutOfProcessRequestHandler/](AspNetCoreModuleV2/OutOfProcessRequestHandler/): Contains native code for out-of-process hosting. +- [AspNetCoreModuleV2/RequestHandlerLib/](AspNetCoreModuleV2/RequestHandlerLib/): Contains shared code between in-process and out-of-process hosting. +- [IIS/](IIS/): Contains managed code for hosting ASP.NET Core with in-process hosting. +- [IISIntegration/](IISIntegration/): Contains managed code for hosting ASP.NET Core with out-of-process hosting. +- [IntegrationTesting.IIS/](IntegrationTesting.IIS/): Contains testing infrastructure for starting IIS and IISExpress. + +## Development Setup + +### Build + +IIS can only be used on Windows. + +IIS requires VS C++ native components to build. VS C++ native components can be installed by following the [Build From Source instructions](https://github.com/dotnet/aspnetcore/blob/main/docs/BuildFromSource.md#on-windows). + +To build this specific project from source, you can follow the instructions [on building a subset of the code](https://github.com/dotnet/aspnetcore/blob/main/docs/BuildFromSource.md#building-a-subset-of-the-code). + +Or for the less detailed explanation, run the following command inside this directory. +```powershell +> ./build.cmd +``` + +### Test + +To run the tests for this project, you can [run the tests on the command line](https://github.com/dotnet/aspnetcore/blob/main/docs/BuildFromSource.md#running-tests-on-command-line) in this directory. + +Or for the less detailed explanation, run the following command inside this directory. +```powershell +> ./build.cmd -t +``` + +You can also run project specific tests by running `dotnet test` in the `tests` directory next to the `src` directory of the project. + +## More Information + +For more information, see the [ASP.NET Core README](../../../README.md). diff --git a/src/Servers/Kestrel/README.md b/src/Servers/Kestrel/README.md index 5aaf71c466d3..f38718cd006e 100644 --- a/src/Servers/Kestrel/README.md +++ b/src/Servers/Kestrel/README.md @@ -1,8 +1,42 @@ -KestrelHttpServer -================= +# Kestrel -Kestrel is a cross-platform web server for ASP.NET Core. +Kestrel is our cross-platform web server that is included and enabled by default in ASP.NET Core. -## File logging for functional test +Documentation for ASP.NET Core Kestrel can be found in the [ASP.NET Core Kestrel Docs](https://docs.microsoft.com/aspnet/core/fundamentals/servers/kestrel). -Turn on file logging for Kestrel functional tests by specifying the environment variable ASPNETCORE_TEST_LOG_DIR to the log output directory. +## Description + +The following contains a description of the sub-directories. + +- [Core/](Core/): Contains the main server implementation for Kestrel. +- [Kestrel/](Kestrel/): Contains the public API exposed to use Kestrel. +- [test/](test/): Contains End to End tests for Kestrel. +- [Transport.Sockets/](Transport.Sockets/):Contains the Sockets transport for connection management. +- [Transport.Quic/](Transport.Quic/): Contains the QUIC transport for connection management. +- [Transport.Libuv/](Transport.Libuv/): Contains the obsolete Libuv transport for connection management. + +## Development Setup + +### Build + +To build this specific project from source, you can follow the instructions [on building a subset of the code](https://github.com/dotnet/aspnetcore/blob/main/docs/BuildFromSource.md#building-a-subset-of-the-code). + +Or for the less detailed explanation, run the following command inside this directory. +```powershell +> ./build.cmd +``` + +### Test + +To run the tests for this project, you can [run the tests on the command line](https://github.com/dotnet/aspnetcore/blob/main/docs/BuildFromSource.md#running-tests-on-command-line) in this directory. + +Or for the less detailed explanation, run the following command inside this directory. +```powershell +> ./build.cmd -t +``` + +You can also run project specific tests by running `dotnet test` in the `tests` directory next to the `src` directory of the project. + +## More Information + +For more information, see the [ASP.NET Core README](../../../README.md). diff --git a/src/Servers/README.md b/src/Servers/README.md new file mode 100644 index 000000000000..a3daf34160ec --- /dev/null +++ b/src/Servers/README.md @@ -0,0 +1,20 @@ +# ASP.NET Core Servers + +ASP.NET Core Servers contains all servers that can be used in ASP.NET Core by default. These include: + +- [Kestrel](https://docs.microsoft.com/aspnet/core/fundamentals/servers/kestrel), our cross-platform web server that is included and enabled by default in ASP.NET Core. +- [IIS Server/ASP.NET Core Module](https://docs.microsoft.com/aspnet/core/host-and-deploy/iis/), a flexible secure managed Web Server to be hosted with IIS on Windows. +- [HTTP.sys](https://docs.microsoft.com/aspnet/core/fundamentals/servers/httpsys), a web server that uses the [Windows Hypertext Transfer Protocol Stack](https://docs.microsoft.com/iis/get-started/introduction-to-iis/introduction-to-iis-architecture#hypertext-transfer-protocol-stack-httpsys). + +## Description + +This folder contains all servers implementations related abstractions for ASP.NET Core. + +- [Kestrel/](Kestrel/): Contains the implementation of the Kestrel Web Server. +- [IIS/](IIS/): Cotnains all code for the IIS Web Server and ASP.NET Core Module. +- [HttpSys/](HttpSys/): Contains all code for the HTTP.sys Web Server. +- [Connections.Abstractions/](Connections.Abstractions/): A set of abstractions for creating and using Connections; used in the server implementations and SignalR. + +## More Information + +For more information, see the [ASP.NET Core README](../../README.md).