Kestrel is a cross-platform web server for ASP.NET Core. It is supported on all platforms and versions that .NET Core supports.
It is included by default as internal server in ASP.NET Core. Kestrel can be used, by itself as an edge server i.e Internet-facing web server that can directly process the incoming HTTP requests from the client. In Kestrel, the process used to host the app is dotnet.exe.
Kestrel is not used with InProcess hosting model.
With Out of Process Hosting model, Kestrel can be used in one of the following 2 ways.
Kestrel can be used as the internet facing web server
Kestrel can also be used in combination with a reverse proxy server
When we run the asp.net core application using the .NET core CLI, Kestrel is the only web server that is used to handle and process the incoming HTTP request.
Using the CLI we can Create a new project, configuration file, or solution based on the specified template
Restore the dependencies and tools required for a .net core project Build a project and all of its dependencies Run a project etc.To run our asp.net core application using the .NET Core CLI. Fire up Windows Command Prompt Change the directory to the folder that contains your asp.net core project and execute dotnet run command
After the .NET Core CLI builds and runs the project, it shows the URL using which we can access the application.
In my case the application is available at http://localhost:5000
In case of Kestrel, the process used to host and execute the app is dotnet.exe. So when we navigate to http://localhost:5000, we will see the process name dotnet displayed.