This document is now out of date. For up-to-date ASP.NET Core documentation go to: http://docs.asp.net

One of the plugable components in the stack is the server. Different servers may offer different functionality, performance, scale, etc.. Here are the servers that the team works on and why you might use them.

IIS (HttpPlatformHandler + Kestrel)

  • HttpPlatformHandler is a native IIS module that launches back-end processes (e.g. Kestrel) and proxies requests to them.
  • It benefits from IIS's support for Windows authentication, etc..

Microsoft.AspNet.Server.Kestrel (Kestrel)

  • This server can be loaded by Microsoft.AspNet.Hosting for use outside of or behind IIS.
  • It is designed to work cross platform on Windows, Mac, and Linux.

Microsoft.AspNet.Server.WebListener (WebListener)

  • This server can be loaded by Microsoft.AspNet.Hosting for use outside of IIS in applications, services, worker roles, etc..
  • It runs directly on the Http.Sys kernel driver with little overhead.
  • It benefits from Http.Sys's support for port sharing, Windows authentication, file transfer, etc..