|
| 1 | +# IIS |
| 2 | + |
| 3 | +ASP.NET Core IIS Web Server is a flexible secure managed Web Server to be hosted with IIS on Windows. |
| 4 | + |
| 5 | +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). |
| 6 | + |
| 7 | +## Description |
| 8 | + |
| 9 | +This folder contains all relevant code for the IIS Web Server implementation. |
| 10 | + |
| 11 | +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. |
| 12 | + |
| 13 | +The following contains a description of the sub-directories. |
| 14 | + |
| 15 | +- [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). |
| 16 | +- [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. |
| 17 | +- [AspNetCoreModuleV2/CommonLib/](AspNetCoreModuleV2/CommonLib/): Contains common code shared between all native components. |
| 18 | +- [AspNetCoreModuleV2/CommonLibTests/](AspNetCoreModuleV2/CommonLibTests/): Contains native tests for the ASP.NET Core Module. |
| 19 | +- [AspNetCoreModuleV2/IISLib/](AspNetCoreModuleV2/IISLib/): Contains common code for interactions with IIS. |
| 20 | +- [AspNetCoreModuleV2/InProcessRequestHandler/](AspNetCoreModuleV2/InProcessRequestHandler/): Contains native code for in-process hosting. |
| 21 | +- [AspNetCoreModuleV2/OutOfProcessRequestHandler/](AspNetCoreModuleV2/OutOfProcessRequestHandler/): Contains native code for out-of-process hosting. |
| 22 | +- [AspNetCoreModuleV2/RequestHandlerLib/](AspNetCoreModuleV2/RequestHandlerLib/): Contains shared code between in-process and out-of-process hosting. |
| 23 | +- [IIS/](IIS/): Contains managed code for hosting ASP.NET Core with in-process hosting. |
| 24 | +- [IISIntegration/](IISIntegration/): Contains managed code for hosting ASP.NET Core with out-of-process hosting. |
| 25 | +- [IntegrationTesting.IIS/](IntegrationTesting.IIS/): Contains testing infrastructure for starting IIS and IISExpress. |
| 26 | + |
| 27 | +## Development Setup |
| 28 | + |
| 29 | +### Build |
| 30 | + |
| 31 | +IIS can only be used on Windows. |
| 32 | + |
| 33 | +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). |
| 34 | + |
| 35 | +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). |
| 36 | + |
| 37 | +Or for the less detailed explanation, run the following command inside this directory. |
| 38 | +```powershell |
| 39 | +> ./build.cmd |
| 40 | +``` |
| 41 | + |
| 42 | +### Test |
| 43 | + |
| 44 | +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. |
| 45 | + |
| 46 | +Or for the less detailed explanation, run the following command inside this directory. |
| 47 | +```powershell |
| 48 | +> ./build.cmd -t |
| 49 | +``` |
| 50 | + |
| 51 | +You can also run project specific tests by running `dotnet test` in the `tests` directory next to the `src` directory of the project. |
| 52 | + |
| 53 | +## More Information |
| 54 | + |
| 55 | +For more information, see the [ASP.NET Core README](../../../README.md). |
0 commit comments